自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET控件開發(fā)技巧之使用HtmlTextWriter類淺析

開發(fā) 后端
ASP.NET控件開發(fā)技巧之使用HtmlTextWriter類主要向你講述了使用HtmlTextWriter類規(guī)范輸出標簽的應用,

ASP.NET控件開發(fā)技巧之使用HtmlTextWriter類規(guī)范輸出標簽是如何實現(xiàn)的呢?下面開始我們的步驟:

ASP.NET控件開發(fā)技巧之使用HtmlTextWriter類規(guī)范輸出標簽1.

盡量使用內(nèi)置的方法輸出標簽

寫過控件的人沒有人會說沒用過Render和RenderContents方法,其中關鍵的類就是用HtmlTextWriter類的一些方法把html標簽呈現(xiàn)出來,但其寫法不同,效果卻相同。如輸出一個下拉框:

  1. public class DemoControl : Control  
  2.     {  
  3.   protected override void Render(HtmlTextWriter writer)  
  4.   {  
  5. //1.以輸出字符串形式輸出html  
  6. /**//*  
  7. writer.Write("<select>");  
  8. writer.Write("<option value='0'>asp.net</option>");  
  9. writer.Write("<option value='1'>asp.net ajax</option>");  
  10. writer.Write("</select>");  
  11. */ 
  12.  
  13. //2.用.net內(nèi)置推薦的方法輸出html  
  14. writer.RenderBeginTag(HtmlTextWriterTag.Select);  
  15. writer.AddAttribute(HtmlTextWriterAttribute.Value, "0");  
  16. writer.RenderBeginTag(HtmlTextWriterTag.Option);  
  17. writer.Write("asp.net");  
  18. writer.RenderEndTag();  
  19. writer.AddAttribute(HtmlTextWriterAttribute.Value, "1");  
  20. writer.RenderBeginTag(HtmlTextWriterTag.Option);  
  21. writer.Write("asp.net ajax");  
  22. writer.RenderEndTag();  
  23.   }  
  24.     } 

當你熟悉這些方法后,請盡量使用這些方法

ASP.NET控件開發(fā)技巧之使用HtmlTextWriter類規(guī)范輸出標簽2.

分段呈現(xiàn)標簽

此方法等于為重構,當標簽呈現(xiàn)的比較多,請不要一步到底的寫下來,分部把需要的東西寫在各個方法里面再組合,
如http://www.cnblogs.com/Clingingboy/archive/2006/07/30/463471.html的示例三,說實話的,雖然用HtmlTextWriter的函數(shù)輸出標簽,但還不如直接輸出字符串來的明白,一大堆的RenderBeginTag和RenderEndTag方法。請分段呈現(xiàn)標簽,分拆函數(shù)。然后以Render開頭的函數(shù)命名,這樣看起來就清晰多了。

  1. protected override void Render(HtmlTextWriter writer)  
  2. {  
  3.     RenderTable(writer);  
  4. }  
  5.  
  6. private void RenderTable(HtmlTextWriter writer)  
  7. {  
  8.     writer.AddStyleAttribute(HtmlTextWriterStyle.BorderWidth, "0");  
  9.     writer.RenderBeginTag(HtmlTextWriterTag.Table);  
  10.     RnderPaymentMethod(writer);  
  11.     RenderCreditCardNo(writer);  
  12.     RenderCardholderName(writer);  
  13.     RenderExpirationDate(writer);  
  14.     RenderSubmitButton(writer);  
  15.     writer.RenderEndTag();  

ASP.NET控件開發(fā)技巧之使用HtmlTextWriter類規(guī)范輸出標簽3.

規(guī)范標簽ID命名

不要把控件的頭標簽把ID名字定死,防止名字重疊,可以把Control的UniqueID屬性賦給ID屬性,子標簽也一樣??梢砸愿笜撕灥膇d為前綴,然后再加以命名。另外的好處就是可以跟前端交互,靈活性增強。

  1. //writer.AddAttribute(HtmlTextWriterAttribute.Id, "select1");  
  2. writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID);  
  3. writer.RenderBeginTag(HtmlTextWriterTag.Select);  
  4. //以父標簽的id為前綴  
  5. writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID+"_asp");  
  6. writer.RenderBeginTag(HtmlTextWriterTag.Option);  
  7. writer.Write("asp.net");  
  8. writer.RenderEndTag();  
  9. writer.RenderEndTag(); 

ASP.NET控件開發(fā)技巧之使用HtmlTextWriter類規(guī)范輸出標簽4.

判斷輸出動態(tài)屬性

如TextBox的Text屬性,當其屬性未設置時,呈現(xiàn)出來的標簽value屬性不呈現(xiàn),即后端要判斷,不然則要呈現(xiàn)value=""這項工作比較繁瑣。

  1. string text = this.Text;  
  2. if (text.Length > 0)  
  3. {  
  4.     writer.AddAttribute(HtmlTextWriterAttribute.Value, text);  

暫時就這些,想到再補充。不想把別的寫進去。以后分開寫。大家想到再補充。

ASP.NET控件開發(fā)技巧之使用HtmlTextWriter類規(guī)范輸出標簽的實現(xiàn)就向你介紹到這里,希望對你有所幫助。

【編輯推薦】

  1. ASP.NET優(yōu)點淺析
  2. ASP.NET組件設計淺析
  3. ASP.NET組件設計代碼實現(xiàn)淺析
  4. ASP.NET控件開發(fā)之修改服務器控件方法淺析
  5. ASP.NET控件開發(fā)之UpdatePanel觸發(fā)JavaScript腳本技巧
責任編輯:仲衡 來源: 博客園
相關推薦

2009-08-05 18:46:21

ComboBox顯示ASP.NET控件開發(fā)

2009-08-06 15:21:45

ASP.NET控件開發(fā)RenderConte

2009-08-07 15:24:16

ASP.NET模板控件

2009-08-07 14:05:21

ASP.NET控件

2009-08-05 10:17:55

ASP.NET TheASP.NET開發(fā)技巧

2009-07-29 13:42:25

ASP.NET注釋

2009-08-06 09:18:01

ASP.NET自定義控ASP.NET控件開發(fā)

2009-08-07 15:34:15

ASP.NET數(shù)據(jù)綁定

2009-07-29 13:32:06

ASP.NET控件使用

2009-07-28 16:21:03

Asp.net AjaAutoComplet

2009-08-04 15:20:59

ASP.NET數(shù)據(jù)驗證數(shù)據(jù)驗證控件

2009-08-07 17:59:35

控件設計器

2009-07-29 13:12:36

StringBuildASP.NET技巧

2009-08-06 18:18:27

ASP.NET控件開發(fā)ASP.NET復合控件

2009-07-27 17:25:53

ASP.NET驗證控件

2009-08-07 17:41:07

ASP.NET Web

2009-08-05 17:11:51

ASP.NET控件開發(fā)ASP.NET服務器控

2009-07-28 09:32:41

ASP.NET自定義控

2009-08-05 17:58:24

UpdatePanel

2009-07-29 10:52:09

數(shù)據(jù)采集程序ASP.NET技巧
點贊
收藏

51CTO技術棧公眾號