控件呈現是指向HTTP輸出流中寫入標記文本的過程。服務器通過HTTP輸出流 向客戶端發送生成的標記文本,這些文本將會通過客戶端浏覽器轉換為可視化的 元素顯示出來。使用控件呈現,開發人員可以將HTML標記、腳本代碼、CSS樣式 表等等輸入到客戶端浏覽器。實現服務器控件呈現主要有兩種方式:一是 Control類的Render方法,二是WebControl的RenderContents方法。本文重點介 紹使用Control類的Render方法實現控件呈現的應用。
使用HtmlTextWriter類
Control類的Render方法主要用於實現控件呈現,其聲明代碼如下:
protected virtual void Render(HtmlTextWriter output)
如上代碼所示,Render方法的參數是一個HtmlTextWriter類型。為了更好的 應用Render方法,讀者應首先了解HtmlTextWriter類及其相關內容。
根據MSDN2005的描述,HtmlTextWriter類用於將標記字符和文本寫入到 ASP.NET服務器控件輸出流。此類提供了ASP.NET服務器控件在向客戶端呈現標記 時所使用的格式設置功能。為了實現類的功能,HtmlTextWriter類定義了多個字 段、屬性和方法。由於成員對象眾多,本文只挑選了一些常用成員加以說明,同 時,還將介紹一些ASP.NET 2.0的新增成員。
常用成員對象包括:
·AddAttribute方法
對於HtmlTextWriter對象通過對RenderBeginTag方法的後續調用創建的元素 ,向其開始標記中添加指定的標記屬性和值。
·AddStyleAttribute方法
對於 HtmlTextWriter 對象通過對 RenderBeginTag 方法的後續調用創建的 元素,向其開始標記中添加標記樣式屬性。
·Write方法
將指定數據類型連同任何掛起的制表符間距一起寫入到輸出流。
·WriteAttribute方法
將標記屬性及其值寫入到輸出流。
·WriteBeginTag方法
任何制表符間距和指定標記元素的開始標記寫入到輸出流。
·WriteEndTag方法
寫入指定的標記元素的任何制表符間距和結束標記。
·Encoding屬性
獲取 HtmlTextWriter 對象用於將內容寫入頁的編碼。
·Indent屬性
獲取或設置用以縮進每一行標記的開始位置的制表符位置數。