複合控制項
更新:2007 年 11 月
ASP.NET 和 ASP.NET Mobile 控制項都讓您能夠組合現有的控制項以撰寫新的控制項。例如,如果您想要將數個行動控制項封裝至一個控制項,您就可建立複合行動控制項。您可以將複合控制項 (Composite Control) 建立成 .ascx 檔中的使用者控制項 (User Control),或是完全包含在 .dll 中的自訂控制項。
語言獨立性
您必須以單一語言 (例如 C# 或 Visual Basic) 撰寫使用者控制項。當建立複合控制項時,您可以結合以不同語言建立的多個控制項。例如,您可以結合在使用者控制項中所描述之 C# CarControl 範例,以及用 Visual Basic 撰寫且可依據指定特性來清查所有汽車的新控制項。
一般撰寫
複合控制項可以繼承自任何控制項類別,其中包括 Mobile Web 網頁 MobileControl 基底類別 (Base Class),或是 Mobile Web 網頁 Panel 控制項類別。如需繼承 (Inheritance) 的詳細資訊,請參閱使用繼承擴充功能。
MobileControl 和 Panel 類別的配接器 (Adapter) 會自動呈現所有子控制項,進而提供複合控制項的必要配接器支援。如果您的複合控制項是繼承自任何其他行動控制項,您就必須提供呈現子控制項的配接器。
在 Mobile Web 網頁上使用複合控制項
在建立複合行動控制項之後,您就可以依照下列方式在 Mobile Web 網頁上使用該控制項:
如果控制項是使用者控制項,請以 @ Register 指示詞在網頁上註冊標記 (Tag) 前置詞、標記名稱和 .ascx 檔,如下列範例所示:
<%@ Register TagPrefix="myCompany" TagName="CarControl" Src="~/CarControl.ascx" %>
如果控制項是自訂控制項,請使用 @ Register 指示詞的不同語法,在網頁上註冊標記前置詞和組件 (Assembly):
<%@ Register TagPrefix="myComany" Namespace="company.MobileControls" Assembly="company.MobileControls" %>
您可以依此範例所示針對此網頁,以宣告的方式將控制項撰寫到網頁中:
<myCompany:CarControl id="myCarCtl" />