中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-06-12 17:47:27 來源:億速云 閱讀:149 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關怎么在ASP.NET中使用render方法,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

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

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

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

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

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

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

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

總結:

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

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

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

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

上述就是小編為大家分享的怎么在ASP.NET中使用render方法了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华池县| 正安县| 莱西市| 淮安市| 萍乡市| 凌云县| 青田县| 赞皇县| 江孜县| 尤溪县| 平邑县| 宜宾县| 阿鲁科尔沁旗| 河南省| 稷山县| 临湘市| 丰县| 金乡县| 昭苏县| 长治县| 哈尔滨市| 灵山县| 永德县| 长武县| 三河市| 洪洞县| 龙井市| 封丘县| 禹城市| 兴和县| 和静县| 南投县| 长沙县| 义乌市| 惠水县| 十堰市| 西城区| 枝江市| 古浪县| 凤阳县| 文昌市|