VS 2008上でのASP.NET AJAX Control Toolkitの扱い方
VS 2008では、エクステンダ ウィザードダイアログの導入によりControl Toolkitの利用がよりシンプルになりました。
Control Toolkitで提供されるほとんどのコントロールはエクステンダコントロールと呼ばれ、既存のASP.NETサーバーコントロールに対して機能拡張を行うための機能を提供します(もちろん、単独で利用可能なコントロールもあります)。
VS 2005とVS 2008では、このエクステンダコントロールの利用方法が異なります(VS 2005上での利用方法はこちらとこちらの記事を参照)。
VS 2008では、ターゲットに適用可能なエクステンダコントロールをダイアログに表示/選択できるようになりました(図1)。

ダイアログを表示するには、エクステンダコントロールを適用させたいコントロール(ターゲット)から、タスクメニューの[エクステンダの追加…]を選択します。図2はTextBoxWatermarkExtenderコントロールを選択している例です。
ダイアログ下部にエクステンダコントロールのIDを入力して[OK]をクリックします。
追加されたエクステンダコントロールはHTMLデザイナ上でタグ表示されるのみで、フォームデザイナ上では表示されません。そのため、分割ビューを利用せずにフォームデザイナのみで閲覧している場合は、サーバーコントロールがエクステンダコントロールを適用しているかどうか識別できません。これはVS 2005上でControl Toolkitを利用したことがある方にとって違和感を覚える変更点かもしれません。
VS 2008では分割ビューを利用するとControl Toolkitを利用した開発をより効率的に行えるので、積極的な利用をお勧めします。
エクステンダコントロールのプロパティを設定する際には、従来のControl Toolkit同様にエクステンダコントロールを追加したコントロールのプロパティウィンドウに、拡張されたプロパティが追加表示されます。
エクステンダコントロールを削除するには、ターゲットコントロールのタスクメニューから[エクステンダの削除…]を選択してください(図3)。

自作のExtenderコントロールの利用方法
Control Toolkitには自作のエクステンダコントロールを作るためのテンプレートも用意されています。インストール方法や作成方法の詳細については「ASP.NET AJAXで学ぶAJAX対応コントロール実装の基本」を参照してください。以下の内容を理解するには最低限、上記リンクの内容を把握している必要があります。
自作のエクステンダコントロールをエクステンダ ウィザードダイアログに表示させるにはいくつかの条件があります。今回は自作コントロールのプロジェクトとこれを利用するWebサイトが同一のソリューション内にある場合について解説します。
- 自作エクステンダコントロールのプロジェクト上で作成後ビルドを行う
- ビルドによりツールボックスに自作のエクステンダコントロールが表示される
- Xxxx.aspxページ上でエクステンダコントロールを適用できるサーバーコントロールを配置する
- スマートタグからエクステンダ ウィザードダイアログを展開すると自作のエクステンダコントロールが表示される
この場合、自作コントロールプロジェクトのビルドを行うことが重要です。このビルドにより、ツールボックスに自作のエクステンダコントロールのタブとコントロールが作成/追加されます。つまり、追加時にエクステンダ ウィザードダイアログに追加表示する設定が行われます(IDEによる自動設定)。
エクステンダ ウィザードダイアログに表示するエクステンダコントロールを決めるのは、xxxExtender.vbファイルにおけるTargetControlType属性の役割です。
<TargetControlType(GetType(クラス名))>
ここで指定したコントロール(または、その派生コントロール)がターゲットとなる場合にのみ、エクステンダコントロールはエクステンダ ウィザードダイアログに表示されます(図4)。
10920版では主に既存のコントロールで既知の問題となっていたバグフィックスが中心でしたが、他にもいくつかのコントロールに対して追加機能が搭載されています。
- Calendarコントロール
- カレンダー日付の初期値設定を行うSelectedDateプロパティの追加
- カレンダーの日にちを選択した時の表示形式を表すFormatプロパティの追加
- ModalPopupExtenderコントロール
- ウィンドウのリサイズとスクロールに応じてModalPopupウィンドウの移動をさせないRepositionModeプロパティの追加
- ConfirmButtonExtenderコントロール
- ModalPopupExtenderコントロールを利用したアラートダイアログの表示を可能にするDisplayModalPopupIDプロパティの追加
- AutoCompleteExtenderコントロール
- オートコンプリートリストの最初のオプションが既定で選ばれるかどうかを決めるFirstRowSelectedプロパティの追加
- オートコンプリートの最後を示す文字を登録するDelimiterCharactersプロパティの追加
- SliderExtenderコントロール
- CSSプロパティを利用したスライダーのカスタマイズに対応
尚、11月30日付で11119版はエクステンダ ウィザードダイアログを利用できるように修正され、再リリースされました。Control Toolkit Web Siteテンプレートが消失していますが、今回ご紹介した機能は利用できます。


