假如你有大量的asp.net頁面,在其中你會要求訪問者選擇一個郵政編碼。然后,基于這個郵編,顯示與之相關的城市和省份。這項功能可以通過一個包含郵政編碼的dropdownlist控件來組織,或者可以通過一個textbox控件來用于輸入郵政編碼。無論使用哪一種方式,只要訪問者選取或者輸入了一個郵政編碼,你就需要將相應的城市和省份放在label控件中顯示出來,有沒有其它的方法可以實現(xiàn)此功能呢? 當然有,你可以自定義一個控件來實現(xiàn)。你可以創(chuàng)建一個包含相關的這些基本控件的自定義控件。然后通過設定該控件的屬性值,可用來得到相關的郵政編碼及其它信息。 這次要在這個asp.net頁面注冊一個簡單的用戶自定義控件,然后以代碼的方式和在asp.net頁面表單內定義的方式定義一個這樣的控件。在這個asp.net頁面的頂端,你需要注冊這個控件: <% @register tagprefix="My" tagname="my_controls" src="../mycontrols.ascx" %> 其中tagprefix可以設置為任何你想要有代碼中定義你的控件所用的名字,在定義控件時,這個屬性和tagname屬性一起使用,從而指出你正在創(chuàng)建一個這樣的控件類型。src屬性用來設定自定義控件的文件所在的位置。 進行這樣的定義之后,你就可以在代碼中定義自己的控件了。如: <my:my_controls id="My_controls_1" runat="server" /> 其中,My:my_controls標記名稱就是在注冊(register)標記中設定的tagprefix和tagname屬性的組合。之后,你可以為這個自定義控件提供一個名字,并指出該控件應該在服務器上執(zhí)行。如果這個控件具有一些可寫的屬性的話,你可以在控件的定義中設置這些屬性。如果控件有一個numlines屬性的話,就可以這樣來設置它: <my:my_controls id="My_controls_1" numlines = 5 runat="server" /> 或者也可以像下面這樣在代碼中進行設置: my_controls_1.numlines=5 在代碼中自動將一個自定義控件實例化并添加到頁面中,與標準控件的實例化過程沒有太大的區(qū)別。具體如下: dim mycontrol as usercontrol = loadcontrol("../mycontrols.ascx") myform.controls.add(mycotrol) 你將其中的變量標為一個usercontrol(自定義控件)數據類型。同時,在同一代碼行上使用了loadcontrol方法,并將你的控件定義文件的路徑傳給這個方法。之后,你就具有一個自定義控件的實例化變量。然后,就可以像添加任何其他的控件那樣將其添加到頁面中。
出處:
責任編輯:幻想曲
上一頁 下一頁 向自定義控件中添加控件
◎進入論壇網絡編程版塊參加討論
|