程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> asp.net控件開發基礎(2)

asp.net控件開發基礎(2)

編輯:關於ASP.NET

或許大家還對為何要重寫Render方法存有疑惑,希望大家看看我舉的例子,能夠明白Render方法和其他兩個方法的作用,然後真正明白為何一般情況下只須重寫Render方法

我們知道我們每次編寫控件時,都需要重寫Render方法,我們發現在Control類中很多方法可以重寫,但我們沒有去重寫他們,我們需要遵循一個原則,在需要重載的時候再去重寫他們

我們還是先來看看與Render方法相關的兩個方法

//RenderControl方法的基本實現
public void RenderControl(HtmlTextWriter writer)
{
if(Visible)
{
Render(writer);
}
}
//Render方法基本實現
protected virtual void Render(HtmlTextWriter writer)
{
RenderChildren(writer);
}
//RenderChildren方式基本實現
protected virtual void RenderChildren(HtmlTextWriter writer)
{
foreach (Control c in Controls)
{
c.RenderControl(writer);
}
}

相信看過"ASP.NET服務器控件開發技術與實例"這本書的人,肯定看過上面的一段代碼.

假設你不理解上面的流程(我也不一定理解,希望我的思路對你有幫助),我認為有一種很好的方式來理解上面的流程,跟大家分享一下.

現在拋開上面的代碼,我們來建一個簡單的頁面,隨意的拖幾個控件到界面上,注意最後一個三panel控件,如下圖

圖一

我們知道,每個控件都有Visible和EnableViewState屬性,Visible用來設置控件是否被呈現.

圖二

現在我們把button控件的Visible屬性設置為flase,我們看到了我們預期的效果,接著請啟用頁面跟蹤,這個很重要

圖三

在服務器上運行這個頁面,大家可以在控件樹上看到下面畫面

圖四

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved