ASP.NET にカスタムサーバーコントロールを登録する
SPECIAL
カスタムサーバーコントロールを登録する
カスタムサーバーコントロールを Visual Studio .NET 2008 の Web プロジェクトで使用できるようにするには、Web サイトへサーバーコントロールの登録を行う必要があります。
参照を追加する
カスタムコントロールのライブラリを Web プロジェクト内に登録します。
ソリューションエクスプローラーの Web プロジェクト名で右クリックして "参照の追加" を選択すると、プログラムを選択するための画面が表示されます。ここで 【参照】 タブを選んで、カスタムコントロールが格納されている DLL を選択すれば、ライブラリが Web プロジェクトに取り込まれます。
取り込まれたライブラリは、ソリューションエクスプローラーの "Bin" フォルダに配置されます。
ツールボックスに登録する
カスタムコントロールを Visual Studio 2008 のツールボックスに登録します。
"*.aspx" ファイルや "Global.asax" といった、コントロールを配置可能なファイルを開いてツールボックスが表示されたら、そこで右クリックして、ショートカットメニューから 【アイテムの選択】 を選択します。
"ツールボックスアイテムの選択" ダイアログが表示されたら、【.NET Framework コンポーネント】 タブを選択して、右下にある 【参照】 ボタンをクリックします。そして、参照の追加でも使用した、カスタムコントロールが格納されている DLL を選択すれば、ツールボックスにコントロールが登録されます。
配置するページにコントロールを登録する
カスタムサーバーコントロールをツールボックスに登録すれば、各ページに自由に配置することが出来るようになりますが、その際に、そのカスタムコンポーネントがどのライブラリに登録されているものなのかを示すコードが挿入されます。
自動挿入に任せた場合、HTML タグに付加する接頭語(プレフィックス)がその都度自動的に割り当てられてしまうので、ソースコードの統一感が無くなってきてしまいます。
それを避けるためにも、予め自分で宣言を記載するのが良いかもしれません。
例えば、"CustomServerControl" というカスタムサーバーコントロールがあったとします。このコントロールが "CustomControls.dll" の名前空間 "Controls" に格納されている場合、次のようにして、予め宣言しておくことができます。
なお、宣言は "*.aspx" と "web.config" のどちらでも可能なので、それぞれについて紹介しておくことにします。
*.aspx
"*.aspx" ファイルの場合は、各ページに <%@ Register %> ディレクティブを用いて登録します。
<%@ Register Assembly="CustomControls.dll" Namespace="Controls" TagPrefix="custom" %>
これを、ページ冒頭の <%@ Page %> ディレクティブの次の行辺りにでも宣言しておけば大丈夫です。
web.config
"web.config" ファイルの場合は、<pages> タグの <controls> タグ内に、<add> タグを用いて登録します。
<pages>
<controls>
<add tagPrefix="custom" namespace="Controls" assembly="CustomControls.dll" />
</controls>
</pages>
このようにすることで、カスタムコントロールを配置する場合には、どのページでも次のような形でコントロールを配置することが可能となります。
<custom:CustomServerControl ID="CustomServerControl1" runat="server" />