|
AJAX Control Toolkit の使用について(@IT Insider.NET 会議室) より TextBox を FilterdTextBoxExtender で拡張したカスタムコントロールを作成したいとのこと。 #2007/11/09 -------------- このままだとうまくいかないみたい。 Button Click などのタイミングで動的にコントロールを追加する分にはいいけれど、デザイナでカスタムコントロールをドロップすると Extender の初期化でおこられる。 継承元を Container な Control にして TextBox と Extender をメンバに持つようにしたほうがいいかな。 #2007/11/15 -------------- こっちで解説します。 Custom コントロールに Extender を含める #2007/11/15 -------------- 提示されたコードを見ると Renderメソッド を Override して Extender を Control に関連付けている。 このままだと TextBox は表示されるけれど Extender のコードが Page に書き出されない。 提示されたコード コンパイルは通るけれど、吐き出された HTML を見てみると Sys.Applciation.add_init では Extender が追加されていない。 Extender を作って Control に関連付けるのはいいんだけれど、Container に追加していないのでそのまま捨てられているっぽいですね。 Render で コントロールに Extender を追加すると InvalidOperationException が発生する。 Extender controls may not be registered after PreRender とのことなので、Render だと遅すぎるってことですね。 コントロールの設定という意味ではコントロールの内容を書き出す Render ではなくて、 Init なりで設定を行う必要がある。 最初 カスタムコントロールに追加した Extender を ScriptManager がちゃんと理解してくれるか不安だったんだけれど、吐き出された HTML を見ると Script がロードされ関連付けがされている。
|
| << 前記事(2007/11/06) | トップへ | 後記事(2007/11/08)>> |
| タイトル (本文) | ブログ名/日時 |
|---|---|
Custom コントロールに Extender を含める
ちょっと浅漬けになってたこの話題 ですが、とりあえずこんな方法で出来ましたよ〜ということで御紹介。 結構変遷がありましたが、最終的にはこんなソースコードになりました。 ...続きを見る |
かるあ のメモ 2007/11/15 16:36 |
| 内 容 | ニックネーム/日時 |
|---|
| << 前記事(2007/11/06) | トップへ | 後記事(2007/11/08)>> |