共用方式為


使用繼承擴充功能

更新:2007 年 11 月

除了建立使用者控制項,您還可使用繼承 (Inheritance) 擴充 ASP.NET Mobile Web 網頁的功能。如果您建立繼承自現有 ASP.NET Mobile 控制項類別 (Class) 的類別,您就可以針對該類別進行覆寫現有成員或建立新屬性、方法和事件,來加入功能。

使用繼承建立類別

下列程式碼範例示範名為 CarList 的新類別,此類別繼承自 List 行動控制項,且已針對呈現汽車資訊完成特製化。CarList 類別封裝繫結至 Car 物件清單所需的資訊。

using System.Web.UI.MobileControls;

namespace myCompany.MobileControls
{
    class CarList : List
    {
        // Override OnInit, and set the DataValueField property
        // to the correct property of a Car object to use as the 
        // value of each list item.
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            this.DataValueField = "id";
        }
    
        // Override OnItemDataBind, and set the list item display 
        // text to a rich expression, containing the year, make, 
        // and model of the car.
        protected override void OnItemDataBind(ListDataBindEventArgs e)
        {
            base.OnItemDataBind(e);

            CarInfo car = (Car)e.DataItem;
            e.ListItem.Text = 
              String.Format("{0}{1}{2}", car.Year, car.Make, car.Model);
        }
    }
}

如需有關透過繼承來擴充控制項功能的詳細範例,請參閱「ASP.NET Mobile 快速入門教學課」。

部署新類別

若要使用此範例類別,請將類別編譯成組件 (Assembly),並將它放入應用程式的 Bin 資料夾。下列範例會示範如何註冊名為 MyCompany.CarList.dll 的組件,您可以使用自訂標記 (Tag) 中指定的 @ Register 指示詞在網頁上註冊組件。

<%-- Register the myCompany.MobileControls namespace. --%>
<%@ Register TagPrefix="car" Namespace="myCompany.MobileControls" 
    Assembly="myCompany.CarList" %>
    // More code.
    <%-- Control declaration --%>
    <car:CarList id="myCarList"  />

如果您的繼承控制項未修改父類别的呈現功能,您就不需要撰寫該類別的配接器。在上一個範例中,由於每一個 CarList 控制項也是 List 物件,所以這時會自動使用目前瀏覽器之 List 控制項所指派到的配接器,例如 HtmlListAdapter。然而,如果您想要針對特定裝置提供 CarList 控制項的特製化呈現,您可以撰寫配接器,並在 Web.config 檔中註冊這項對應。

請參閱

其他資源

加入新裝置配接器和裝置支援

建立自訂的行動控制項