目次

ニュース

日記カテゴリ

書庫


ASP.NET AJAX Control Toolkitをユーザコントロール内に含めてみる。

UpdatePanel+ModalPopupExtender+Panel+ボタンのコントロールどもを使ったユーザコントロールを作ってみました。ユーザコントロールの編集は何の問題もなく進みます。問題はそれをWebフォームで利用する際に起こりました。ちなみにユーザコントロールをWebフォームに追加するのって、ソリューションエクスプローラのユーザコントロールファイル(.ascx)をD&Dでできるんですねぇ。タグのプレフィックスを勝手に登録してくれます。

Webフォームをデザインモードにするとコントロールの描画エラーとなります。

ハンドルされない例外が発生しました。

The control with ID

'ModalPopupExtender1' requires a ScriptManager on the page. The ScriptManager must appear before any controls that need it.

むむぅ。「ScriptManagerがないですことよ。おほほほほ」だそうです。予想としてはユーザコントロールのデザインを表示する際にRendar処理が内部でこっそりと実行されているはずなのですが、その際に処理がユーザコントロールで完結しているから親WebフォームにあるScriptManagerを見つけることができていないんですね。エラー表示のあるままWebフォームを実行するとユーザコントロールは親のScriptManagerを見つけて正常に動作しやがります。カッ

じゃあユーザコントロール側にもScriptManagerを置いたらどうよ?と実際に配置してみてもデザインモードでのエラー表示はそのままに、今度は実行時にエラーがでます。しかもユーザコントロールのScriptManagerも見つけてくれてないorz

Only one instance of a ScriptManager can be added to the page.

ScriptManagerは1つかもっちゃだめですよね。

そんなわけでせっかくユーザコントロールもデザインモード時に描画されるようになりましたが、Ajaxコントロールを内部に含めると駄目なことがわかりました。悲しい。

投稿日時 : 2007年1月20日 14:17
Feedback
タイトル
名前
Url
コメント 

Blog 利用状況

絡んでるところ