複合コントロール
更新 : 2007 年 11 月
ASP.NET と ASP.NET モバイル コントロールは、どちらも既存のコントロールを結合して新しいコントロールを作成できるようになっています。たとえば、いくつかのモバイル コントロールを 1 つのコントロールにカプセル化する場合は、複合モバイル コントロールを作成できます。複合コントロールは、.ascx ファイル内のユーザー コントロールとして作成するか、.dll に完全に組み込まれるカスタム コントロールとして作成できます。
言語への非依存性
ユーザー コントロールは、C# や Visual Basic などの単一の言語で作成する必要があります。複合コントロールを作成するときに、異なる言語で作成されたコントロールを結合できます。たとえば、「ユーザー コントロール」の例にある C# で作成された CarControl を、Visual Basic で作成された、指定の特性を持つすべての車の一覧を作成する新しいコントロールと結合できます。
一般的な合成
複合コントロールは、モバイル Web ページの MobileControl 基本クラスを含めた任意のコントロール クラス、またはモバイル Web ページの Panel コントロール クラスから継承できます。継承の詳細については、「継承による機能の拡張」を参照してください。
MobileControl クラスおよび Panel クラスのアダプタによってすべての子コントロールが自動的にレンダリングされることで、複合コントロールに必要なアダプタ サポートが提供されます。複合コントロールが他のモバイル コントロールから継承している場合は、その子コントロールをレンダリングするアダプタを用意する必要があります。
モバイル Web ページでの複合コントロールの使用
複合モバイル コントロールを作成したら、以下の方法でそのコントロールをモバイル Web ページで使用できます。
コントロールがユーザー コントロールである場合は、以下の例に示すように、ページ上のタグ プレフィックス、タグ名、および .ascx ファイルを @ Register ディレクティブに登録します。
<%@ Register TagPrefix="myCompany" TagName="CarControl" Src="~/CarControl.ascx" %>
コントロールがカスタム コントロールである場合は、ページ上のタグ プレフィックスとアセンブリを、@ Register ディレクティブの別の構文を使用して登録します。
<%@ Register TagPrefix="myComany" Namespace="company.MobileControls" Assembly="company.MobileControls" %>
ページ内では、次の例に示すように、宣言によってコントロールを作成してページに挿入できます。
<myCompany:CarControl id="myCarCtl" runat="server" />