在ASP.NET中创建自定义控件初步(转)
????? 假如你有大量的asp.net頁面,在其中你會要求訪問者選擇一個郵政編碼。然后,基于這個郵編,顯示與之相關(guān)的城市和省份。這項功能可以通過一個包含郵政編碼的dropdownlist控件來組織,或者可以通過一個textbox控件來用于輸入郵政編碼。無論使用哪一種方式,只要訪問者選取或者輸入了一個郵政編碼,你就需要將相應(yīng)的城市和省份放在label控件中顯示出來,有沒有其它的方法可以實(shí)現(xiàn)此功能呢?
當(dāng)然有,你可以自定義一個控件來實(shí)現(xiàn)。你可以創(chuàng)建一個包含相關(guān)的這些基本控件的自定義控件。然后通過設(shè)定該控件的屬性值,可用來得到相關(guān)的郵政編碼及其它信息。
這次要在這個asp.net頁面注冊一個簡單的用戶自定義控件,然后以代碼的方式和在asp.net頁面表單內(nèi)定義的方式定義一個這樣的控件。在這個asp.net頁面的頂端,你需要注冊這個控件:
<%
? @register
?? tagprefix="My"
?? tagname="my_controls"
? src="../mycontrols.ascx"
%>
其中tagprefix可以設(shè)置為任何你想要有代碼中定義你的控件所用的名字,在定義控件時,這個屬性和tagname屬性一起使用,從而指出你正在創(chuàng)建一個這樣的控件類型。src屬性用來設(shè)定自定義控件的文件所在的位置。
進(jìn)行這樣的定義之后,你就可以在代碼中定義自己的控件了。如:
<my:my_controls
? id="My_controls_1"
? runat="server"
/>
其中,My:my_controls標(biāo)記名稱就是在注冊(register)標(biāo)記中設(shè)定的tagprefix和tagname屬性的組合。之后,你可以為這個自定義控件提供一個名字,并指出該控件應(yīng)該在服務(wù)器上執(zhí)行。如果這個控件具有一些可寫的屬性的話,你可以在控件的定義中設(shè)置這些屬性。如果控件有一個numlines屬性的話,就可以這樣來設(shè)置它:
<my:my_controls
? id="My_controls_1"
? numlines = 5
? runat="server"
/>
或者也可以像下面這樣在代碼中進(jìn)行設(shè)置:
my_controls_1.numlines=5
在代碼中自動將一個自定義控件實(shí)例化并添加到頁面中,與標(biāo)準(zhǔn)控件的實(shí)例化過程沒有太大的區(qū)別。具體如下:
dim mycontrol as usercontrol = loadcontrol("../mycontrols.ascx")
myform.controls.add(mycotrol)
你將其中的變量標(biāo)為一個usercontrol(自定義控件)數(shù)據(jù)類型。同時,在同一代碼行上使用了loadcontrol方法,并將你的控件定義文件的路徑傳給這個方法。之后,你就具有一個自定義控件的實(shí)例化變量。然后,就可以像添加任何其他的控件那樣將其添加到頁面中。
?
出處:http://www.blueidea.com/tech/program/2003/1060.asp
轉(zhuǎn)載于:https://www.cnblogs.com/ringwang/archive/2008/08/18/1270208.html
總結(jié)
以上是生活随笔為你收集整理的在ASP.NET中创建自定义控件初步(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity: .NET下的依赖注入容器
- 下一篇: 顾客去饭店吃饭,被提前点了一大桌菜