HtmlTextWriter學習筆記

本文轉自:http://www.cnblogs.com/tonyqus/archive/2005/02/15/104576.html點擊打開鏈接

這兩天正好在研究asp.net自定義控件製作,HtmlTextWriter在控件製作中發揮重要作用,能夠幫助我快速生成html語句。因此決定寫下筆記,方便以後查閱。HtmlTextWriter的名稱空間是System.Web.UI,如果在winform程序下使用,不要忘了添加System.Web.dll引用。 



HtmlTextWriter與Html32TextWriter 
這兩個類不存在繼承和被繼承關係。HtmlTextWriter支持Html4.0標準,而Html32TextWriter支持Html3.2標準,在msdn中一般不建議將Html32TextWriter實例話,它僅爲支持低版本的瀏覽器而設計。 


HtmlTextWriter初始化


HtmlTextWriter的構造函數要求必須傳遞一個與TextWriter接口兼容的實例。大家可以根據需要選擇合適的TextWriter接口實現類,因爲該類的選擇將決定最終生成的Html文本的輸出方式,例如我想把結果輸出到一個TextBox中,於是我就使用了StringWriter類的實例作爲參數傳入: 
   StringWriter sw=new System.IO.StringWriter(); 
   HtmlTextWriter writer=new HtmlTextWriter(sw); 
如果要獲得結果,只需要使用sw.toString()就可以了。注意,HtmlTextWriter本身不提供輸出方法或屬性。 


HtmlTextWriter常用方法


1. void RenderBeginTag(HtmlTextWriterTag tagKey) 
    用於創建Html開始標籤,如<body>,這裏的HtmlTextWriterTag是一個枚舉類型,裏面有所有的標準Html4.0標籤枚舉值,如果我要使用添加body標籤,就是RenderBeginTag(HtmlTextWriterTag.Body)


2. void RenderEndTag() 
    與RenderBeginTag一一對應,有幾個RenderBeginTag就必須有幾個RenderEndTag,當然,RenderEndTag不一定要馬上跟在對應的RenderBeginTag之後,要根據Html語句決定。如下面的例子: 
<html> 
    <head></head> 
    <body></body> 
</html> 
上面一段是html基本結構,使用HtmlTextWriter生成就是 
   writer.RenderBeginTag(HtmlTextWriterTag.Html); 
   writer.RenderBeginTag(HtmlTextWriterTag.Head); 
   writer.RenderEndTag(); 
   writer.RenderBeginTag(HtmlTextWriterTag.Body); 
   writer.RenderEndTag(); 
   writer.RenderEndTag(); 
3. void AddAttribute() 
    用於添加標籤的屬性,例如<img>標籤的url屬性、width屬性等。使用該方法時要注意一點,AddAttribute語句必須出現在對應的RenderBeginTag的前面,請看下面的例子: 
   writer.AddAttribute("url","../xxx.gif"); 
   writer.AddAttribute("width","50"); 
   writer.AddAttribute("height","50"); 
   writer.RenderBeginTag(HtmlTextWriterTag.Img); 
   writer.RenderEndTag();


 上面一段語句將添加<img url="../xxx.gif" width="50" height="50" />,可以發現所有的img標籤屬性的添加都在RenderBeginTag之前。


4. void Write()和void WriteLine() 
用於寫除標準Html標籤以外的所有信息。 




版權聲明:本文由作者Tony Qu原創, 未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則視爲侵權。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章