HtmlTextWriter學習筆記

來源:互聯網
上載者:User

這兩天正好在研究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標籤以外的所有資訊。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.