自定義控制項(1)

2022-02-28 05:17:54 字數 1322 閱讀 6412

今天看了下有關控制項呈現的問題。做個筆記,免得遺忘了,就不好了。

dotnet類庫里,伺服器控制項都繼承自system.web.ui.controls.control類,該類提供了render, renderchildren,rendercontrol等3種方法實現控制項呈現。這些方法都使用htmltextwriter的例項做為引數,它們允許為乙個htmltextwriter物件提供伺服器控制項的內容,並將其內容封裝至http輸出流中輸出到客戶端顯示。

方法原型:

protected virtual void render(htmltextwriter writer);

protected virtual void renderchildren(htmltextwriter writer);

protected virtual void rendercontrol(htmltextwriter writer);

實際上3個方法之間存在著密切的關係。下面的**說明了3種方法之間的聯絡。

//rendercotrol 方法的基本實現

public void rendercontrol(htmltextwriter output)

//render 方法的基本實現

public void render(htmltextwriter output)

//renderchildren 方法的基本實現

public void renderchildren(htmltextwriter output)

上面的**說明了rendercontrol、render、renderchildren方法的基本實現,同時也說明了空間呈現的大致邏輯。實際上,控制項呈現是乙個遞迴呼叫的過程,其過程為:

頁面框架建立乙個htmltextwriter類的例項;

頁面框架將這個例項物件傳遞給rendercontrol方法:

rendercontrol方法檢查控制項的可視書香visible是否為true,如果為true,rendercontrol方法將呼叫render方法;如果為false,則不呈現該控制項和其子控制項;

render方法執行預設實現,呼叫renderchildren方法;

renderchildren方法按照預設實現中的設定呼叫每個子控制項的rendercontrol方法。

以上3種方法中最重要、最常用的是render方法。空間開發者可以通過重寫render方法完成呈現控制項的任務。存在兩種方式將需要輸出的內容封裝入http輸出流中。

·  呼叫write方法。這個方法將直接把需要輸出的內容寫入字串中。

·  呼叫htmltextwriter類中提供的多種方法和相關列舉來組織需要輸出的內容,而不是像write方法那樣直接編寫標記文字。

自定義控制項1

0508 算作是學習記錄吧!自定義控制項有兩部分 1 自定義view 2自定義viewgroup 先從自定義view來吧。第乙個 圓角 繼承view之後,有四個構造方法 public circleimg context context public circleimg context context...

Wpf 自定義控制項 1

1.新建乙個wpf工程,在工程下面新建 乙個資料夾themes,在themes下新建兩個資源字典檔案generic.xaml和prettyseekbar.xaml generic.xaml resourcedictionary xmlns xmlns x resourcedictionary.mer...

自定義控制項 自定義鐘錶

private context mcontext 畫筆 private paint mpaint 控制項的寬 private int mwidth x方向的圓心座標 private int center 鐘錶的半徑 private int mradio 圓環的寬 private int stroke...