真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在ASP.NET中使用render方法

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)怎么在ASP.NET中使用render方法,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

我們注重客戶提出的每個要求,我們充分考慮每一個細(xì)節(jié),我們積極的做好網(wǎng)站設(shè)計制作、成都網(wǎng)站制作服務(wù),我們努力開拓更好的視野,通過不懈的努力,創(chuàng)新互聯(lián)公司贏得了業(yè)內(nèi)的良好聲譽(yù),這一切,也不斷的激勵著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計,微信小程序定制開發(fā),網(wǎng)站開發(fā),技術(shù)開發(fā)實(shí)力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術(shù)開發(fā)工程師。

Asp.net中所有的控件都是從System.Web.UI.Control類,在control類中定義了三個與呈現(xiàn)有關(guān)的方法,分別是Render方法,RenderChildren方法和RenderControl方法.其中RenderControl方法是public的方法,先看看這三個方法的實(shí)現(xiàn):

Public void RenderControl(HtmlTextWriter writer)   {   //判斷Visible屬性是否為真,如果是,則調(diào)用Render方法呈現(xiàn)控件,否則不呈現(xiàn)控件   if(Visible)   {   Render(writer);   }   }   Protected virtual void Render(HtmlTextWriter writer)   {   //在這里寫呈現(xiàn)控件本身的代碼   …….   //調(diào)用RenderChildren方法呈現(xiàn)該控件的子控件   RenderChildren(writer);   }   Protected virtual void RenderChildren(HtmlTextWriter writer)   {   //循環(huán)調(diào)用每個子控件中的RenderControl方法呈現(xiàn)子控件,遞歸實(shí)現(xiàn)呈現(xiàn)整個頁面的控件樹   foreach(Control c in Controls)   {   c.RenderControl(writer);   }   }

RenderControl方法用于供外部類進(jìn)行調(diào)用,以生成控件,如父控件調(diào)用子控件的Rendercontrol方法.在RenderControl方法只是作了是否顯示該控件的判斷,如果顯示則調(diào)用控件的被保護(hù)方法Render.

Render方法是呈現(xiàn)控件的核心方法,在現(xiàn)實(shí)性自定義控件中,我們一般都是通過重寫Render方法來呈現(xiàn)控件的,如果控件是一個容器控件,就要重寫RenderChildren方法來呈現(xiàn)子控件.

所有的服務(wù)端控件都是從System.Web.UI.WebControl中派生.而WebControl又從Control中派生,所以WebControl具有上述的三個方法,但是又增加了幾個方法,它把Render方法又細(xì)分成三個方法:RenderBgeginTag,RenderContents,RenderEndTag.Render的實(shí)現(xiàn)代碼如下:

Protected override void Render(HtmlTextWriter writer)   {   //呈現(xiàn)開始標(biāo)簽   RenderBgeginTag(writer);   //呈現(xiàn)標(biāo)簽的內(nèi)容   RenderContents(writer);   //呈現(xiàn)結(jié)束標(biāo)簽   RenderEndTag(writer);   }   Public virtual void RenderBeginTag(HtmlTextWriter writer)   {   //調(diào)用AddAttributesToRender方法,添加標(biāo)簽的屬性   AddAttributesToRender(writer);   //判斷呈現(xiàn)的標(biāo)簽是否為已知的標(biāo)簽;   HtmlTextWriterTag tagkey=TagKey;   If (tagkey!=HtmlTextWriterTag.Unknown)   {   Writer.RenderBeginTag(tagkey);   }   Else   {   //未知標(biāo)簽,則使用指定的標(biāo)簽名TagName屬性   Writer.RenderBeginTag(this.TagName);   }   }   Protected virtual void RenderContents(HtmlTextWriter writer)   {   //如果要呈現(xiàn)子控件,就要調(diào)用基類的Render方法   base.Render(writer);   }

看這幾個方法,我覺得好象沒有多大的必要把render方法分解成三個方法,這樣僅對于一呈現(xiàn)單個標(biāo)簽的控件才有意義,對于復(fù)合的控件似乎沒什么意義,還增加了復(fù)雜度.

總結(jié):

1.如果從Control中派生,則應(yīng)重載Render()方法呈現(xiàn)控件.如果控件是一個容器控件,則應(yīng)在render方法中調(diào)用基類的base.RenderChildren()方法,呈現(xiàn)子控件.

2.如果從Webcontrol類中派生,分兩種情況,一種是利用TagKey屬性生成輸出的html標(biāo)簽,這時應(yīng)重載RenderContents()方法來呈現(xiàn)控件.第二種是不想呈現(xiàn)默認(rèn)的的用TagKey生成的html標(biāo)簽,這時應(yīng)重載Render()方法來呈現(xiàn)控件,如下代碼所示:

Protected virtual void Render(HtmlTextWriter writer)   {   //在這里寫呈現(xiàn)控件本身的代碼   AddAttributesToRender(writer);   RenderContents(writer);   }   Protected virtual void RenderContents(HtmlTextWriter writer)   {   //呈現(xiàn)本控件代碼   ….   //如果要呈現(xiàn)子控件,就要調(diào)用基類的Render方法   base.Render(writer);   }

3.如果從Webcontrol類中派生,并且該控件是一個容器控件,則應(yīng)在RenderContents中調(diào)用base.Render()方法,以呈現(xiàn)子控件.

上述就是小編為大家分享的怎么在ASP.NET中使用render方法了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


標(biāo)題名稱:怎么在ASP.NET中使用render方法
網(wǎng)站網(wǎng)址:http://weahome.cn/article/pphopi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部