|
一.從繼承WebControl開(kāi)始
在第二篇教程中,重點(diǎn)介紹了Render()方法的使用,用來(lái)呈現(xiàn)控件,但從Control類繼承的控件尚未發(fā)揮ASP.NET控件的作用.大家知道web服務(wù)器控件分為HTML服務(wù)器控件(如<input id="Button2" runat="server" type="button" value="button" />這樣的形式)和標(biāo)準(zhǔn)服務(wù)器控件(就是<ASP:.. id="" runat="server" />這樣的形式的控件)。
HTML服務(wù)器控件的控件從System.Web.UI.HtmlControls.HtmlControl 類派生,標(biāo)準(zhǔn)服務(wù)器控件的控件從System.Web.UI.WebControls.WebControl 類派生,HtmlControl 類和WebControl 類則從System.Web.UI.Control 類派生,并擴(kuò)展。
所以我們說(shuō),所有的服務(wù)器控件都繼承自System.Web.UI.Control 類,即所有的服務(wù)器控件都具有Control 類的共同屬性,如Visible,EnableViewState屬性,HtmlControl 類和WebControl 類則擴(kuò)充了System.Web.UI.Control 類的功能,如HtmlControl 類定義了所有 HTML 服務(wù)器控件所通用的方法、屬性 (Property) 和事件(具體參數(shù)參照MSDN),WebControl 類定義了所有 標(biāo)準(zhǔn)服務(wù)器控件所通用的方法、屬性 (Property) 和事件(具體參數(shù)參照MSDN)。
如每個(gè)繼承了WebControl 類的標(biāo)準(zhǔn)控件都有定義外觀和行為的屬性,然后不同控件再根據(jù)需要擴(kuò)展功能.
圖一
所以我們推薦的做法是直接從WebControl 類派生,而非Control類.我們所做的非并從頭開(kāi)始.從WebControl 類繼承可以幫我們省很多工作.
二.重寫(xiě)WebControl類方法,不再是Render()
WebControl類繼承了Control類,當(dāng)然有Render方法,在WebControl類中重寫(xiě)了Render方法,如下代碼
示例一
NET技術(shù):asp.net控件開(kāi)發(fā)基礎(chǔ)(4),轉(zhuǎn)載需保留來(lái)源! 鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。protected override void Render(HtmlTextWriter output)
{
RenderBeginTag(output);
RenderContents(output);
RenderEndTag(output);
}