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" />