熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

淺談ASP.NET中render方法

2013-11-13 10:23:06  來源: .NET編程 
    中所有的控件都是從SystemWebUIControl類在control類中定義了三個與呈現有關的方法分別是Render方法RenderChildren方法和RenderControl方法其中RenderControl方法是public的方法先看看這三個方法的實現
   

  

 
    RenderControl方法用於供外部類進行調用以生成控件如父控件調用子控件的Rendercontrol方法在RenderControl方法只是作了是否顯示該控件的判斷如果顯示則調用控件的被保護方法Render
   
    Render方法是呈現控件的核心方法在現實性自定義控件中我們一般都是通過重寫Render方法來呈現控件的如果控件是一個容器控件就要重寫RenderChildren方法來呈現子控件
   
    所有的服務端控件都是從SystemWebUIWebControl中派生而WebControl又從Control中派生所以WebControl具有上述的三個方法但是又增加了幾個方法它把Render方法又細分成三個方法RenderBgeginTagRenderContentsRenderEndTagRender的實現代碼如下
   

  

 
    看這幾個方法我覺得好象沒有多大的必要把render方法分解成三個方法這樣僅對於一呈現單個標簽的控件才有意義對於復合的控件似乎沒什麼意義還增加了復雜度
   
    總結
   
    如果從Control中派生則應重載Render()方法呈現控件如果控件是一個容器控件則應在render方法中調用基類的baseRenderChildren()方法呈現子控件
   
    如果從Webcontrol類中派生分兩種情況一種是利用TagKey屬性生成輸出的html標簽這時應重載RenderContents()方法來呈現控件第二種是不想呈現默認的的用TagKey生成的html標簽這時應重載Render()方法來呈現控件如下代碼所示
   

  

 
    如果從Webcontrol類中派生並且該控件是一個容器控件則應在RenderContents中調用baseRender()方法以呈現子控件
   
    其他的兩種方法我們會在後續文章中介紹到希望對你有幫助
From:http://tw.wingwit.com/Article/program/net/201311/13441.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.