2012-01-17 3 views
0

私は、Webパーツフレームワークを使用してユーザーが自分のインターフェイスをカスタマイズできるasp.netアプリケーションを持っています。これの特徴の一つは、一つは、デフォルトで提供されていますが、レイアウトを変更したい場合、それは上書きすることができ、利用可能なWebパーツのカタログであるなどRadToolTipのRenderControlメソッド

override void RenderCatalogPart(HtmlTextWriter writer, CatalogPart catalogPart) 

私の知る限り、そのそれを行う唯一の方法です。現時点では、必要な要素がすべて含まれたパネルを作成し、パネルのRenderControlメソッドを使用してhtmlwriterに出力します。ここまでは順調ですね。この問題は、同じRenderControlメソッドを使用してパネルにradtooltipを追加しようとすると発生し、次のランタイムエラーが発生します。

Pageをnullにすることはできません。この操作がASP.NET要求のコンテキストで実行されていることを確認してください。

なぜツールチップがjavascriptを使用し、それをページに書き込まなければならないのか分かりますが、RenderCatalogPartメソッドはどのページに出力されるのか分かりません。これを回避する方法はありますか?あるいは代替手段を考えなければなりませんか?

私はこれをtelerikのウェブサイトに掲載しましたが、私はここでも誰にでもアイデアを持っています。

ありがとうございました。

答えて

0

ここで問題となるのは、ツールチップを作成してPreRenderのコントロールとして追加する必要があるため、スクリプトをScriptManagerに追加できることです。

PreRender()メソッドでツールチップのコレクションを作成し、上記のようにRenderCatalogPartでhttpwriterに書き込むと、問題が修正されます。

1

Telerik ASP.NETコントロールには、MS AJAX ScriptManagerコントロールが必要です。 ScriptManagerへの参照を取得するために、ページにもアクセスしたいと思うのはそのためだと思います。ツールヒントのRegisterWithScriptManagerプロパティをfalseに設定し、コントロールがレンダリングするかどうかを確認してください。

+0

提案していただきありがとうございますが、悲しいことにはうまくいきませんでした。私はおそらくどこかからページへの参照を取得しなければ可能ではないだろうと思っています。 –

関連する問題