HtmlTextWriter學習筆記

2021-04-07 12:22:54 字數 1843 閱讀 4666

這兩天正好在研究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開始標籤,如,這裡的htmltextwritertag是乙個列舉型別,裡面有所有的標準html4.0標籤列舉值,如果我要使用新增body標籤,就是renderbegintag(htmltextwritertag.body) 

2. void renderendtag() 

與renderbegintag一一對應,有幾個renderbegintag就必須有幾個renderendtag,當然,renderendtag不一定要馬上跟在對應的renderbegintag之後,要根據html語句決定。如下面的例子: 

上面一段是html基本結構,使用htmltextwriter生成就是 

writer.renderbegintag(htmltextwritertag.html); 

writer.renderbegintag(htmltextwritertag.head); 

writer.renderendtag(); 

writer.renderbegintag(htmltextwritertag.body); 

writer.renderendtag(); 

writer.renderendtag(); 

3. void addattribute() 

用於新增標籤的屬性,例如標籤的url屬性、width屬性等。使用該方法時要注意一點,addattribute語句必須出現在對應的renderbegintag的前面,請看下面的例子: 

writer.addattribute("url","../***.gif"); 

writer.addattribute("width","50"); 

writer.addattribute("height","50"); 

writer.renderbegintag(htmltextwritertag.img); 

writer.renderendtag(); 

上面一段語句將新增,可以發現所有的img標籤屬性的新增都在renderbegintag之前。

4. void write()和void writeline() 

用於寫除標準html標籤以外的所有資訊。 

學做事,先學做人

經理很關照我,我很感謝經理。其實,有乙個好的領導,只要好好幹,他是一定會知道的。但是,要改變客戶的看法,看來還真的很難。在客戶面前不可以太謙虛,太過謙虛,他們反覺得我們無能。做事先做人,一點都沒錯啊。感覺自己太嫩了,這一切還得慢慢磨練。希望多看數,多學習,多仔細觀察生活,觀察周圍成功的人,不斷提高自...

B 學密碼學真的得學程式

b 學密碼學真的得學程式 time limit 1000msmemory limit 65536kb64bit io format lld llu submit status practice sdutoj 2464 description 話說,上次zyj同學最終在眾位瑪麗亞的幫助下搞定了那個神奇...

學密碼學一定得學程式

time limit 1000ms memory limit 65536k 曾經,zyj同學非常喜歡密碼學。有一天,他發現了乙個很長很長的字串s1。他很好奇那代表著什麼,於是神奇的wl給了他另乙個字串s2。但是很不幸的是,wl忘記跟他說是什麼意思了。這個時候,zyj不得不求助與偉大的zp。zp笑了笑...