成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

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

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

寫過控件的人沒有人會說沒用過Render和RenderContents方法,其中關(guān)鍵的類就是用HtmlTextWriter類的一些方法把html標(biāo)簽呈現(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.     } 

當(dāng)你熟悉這些方法后,請盡量使用這些方法

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

分段呈現(xiàn)標(biāo)簽

此方法等于為重構(gòu),當(dāng)標(biāo)簽呈現(xiàn)的比較多,請不要一步到底的寫下來,分部把需要的東西寫在各個方法里面再組合,
如http://www.cnblogs.com/Clingingboy/archive/2006/07/30/463471.html的示例三,說實話的,雖然用HtmlTextWriter的函數(shù)輸出標(biāo)簽,但還不如直接輸出字符串來的明白,一大堆的RenderBeginTag和RenderEndTag方法。請分段呈現(xiàn)標(biāo)簽,分拆函數(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ī)范輸出標(biāo)簽3.

規(guī)范標(biāo)簽ID命名

不要把控件的頭標(biāo)簽把ID名字定死,防止名字重疊,可以把Control的UniqueID屬性賦給ID屬性,子標(biāo)簽也一樣。可以以父標(biāo)簽的id為前綴,然后再加以命名。另外的好處就是可以跟前端交互,靈活性增強。

  1. //writer.AddAttribute(HtmlTextWriterAttribute.Id, "select1");  
  2. writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID);  
  3. writer.RenderBeginTag(HtmlTextWriterTag.Select);  
  4. //以父標(biāo)簽的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ī)范輸出標(biāo)簽4.

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

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

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

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

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

【編輯推薦】

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

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-05 10:17:55

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

2009-08-07 14:05:21

ASP.NET控件

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-07 17:59:35

控件設(shè)計器

2009-08-04 15:20:59

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

2009-07-27 17:25:53

ASP.NET驗證控件

2009-08-06 18:18:27

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

2009-07-29 13:12:36

StringBuildASP.NET技巧

2009-08-07 17:41:07

ASP.NET Web

2009-07-28 09:32:41

ASP.NET自定義控

2009-08-05 17:11:51

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

2009-07-29 10:52:09

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

2009-08-07 17:49:44

控件設(shè)計器
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲视频在线看 | 性高朝久久久久久久3小时 av一区二区三区四区 | 成人在线精品视频 | 欧美极品在线视频 | 日韩欧美在线一区二区 | 亚洲国产成人一区二区 | 精区3d动漫一品二品精区 | 中文字幕第一页在线 | 久久中文字幕电影 | 国产午夜精品一区二区三区四区 | 18gay男同69亚洲网站 | 中文字幕日韩av | 性高湖久久久久久久久 | 自拍偷拍3p | 亚洲一区日韩 | 欧美日韩一区二区三区四区 | 国产精品久久久久久久久久久免费看 | 国产精品久久久久久吹潮 | 日韩精品av一区二区三区 | 伊人网综合 | 久久久亚洲精品视频 | 天天射天天干 | 欧美狠狠操 | 色视频网站 | 久久久久久久综合 | 国产成人精品一区二 | 久久精品国产一区二区电影 | 久久人体| 成人免费淫片aa视频免费 | 日本粉嫩一区二区三区视频 | 久久精品一区 | 天天躁日日躁狠狠的躁天龙影院 | 视频三区| 国产日韩一区二区三区 | 国产精品亚洲精品 | 亚洲不卡在线观看 | 91在线色视频 | 毛片av免费看 | 日韩一区精品 | 99精品免费久久久久久久久日本 | av国产在线观看 |