您好,登錄后才能下訂單哦!
ASP.NET中HtmlTextWriter類如何使用,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
盡量使用內(nèi)置的方法輸出標簽
寫過控件的人沒有人會說沒用過Render和RenderContents方法,其中關(guān)鍵的類就是用HtmlTextWriter類的一些方法把html標簽呈現(xiàn)出來,但其寫法不同,效果卻相同。如輸出一個下拉框:
public class DemoControl : Control { protected override void Render(HtmlTextWriter writer) { //1.以輸出字符串形式輸出html /**//* writer.Write("<select>"); writer.Write("<option value='0'>asp.net</option>"); writer.Write("<option value='1'>asp.net ajax</option>"); writer.Write("</select>"); */ //2.用.net內(nèi)置推薦的方法輸出html writer.RenderBeginTag(HtmlTextWriterTag.Select); writer.AddAttribute(HtmlTextWriterAttribute.Value, "0"); writer.RenderBeginTag(HtmlTextWriterTag.Option); writer.Write("asp.net"); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Value, "1"); writer.RenderBeginTag(HtmlTextWriterTag.Option); writer.Write("asp.net ajax"); writer.RenderEndTag(); } }
當(dāng)你熟悉這些方法后,請盡量使用這些方法
ASP.NET控件開發(fā)技巧之使用HtmlTextWriter類規(guī)范輸出標簽2.
分段呈現(xiàn)標簽
此方法等于為重構(gòu),當(dāng)標簽呈現(xiàn)的比較多,請不要一步到底的寫下來,分部把需要的東西寫在各個方法里面再組合,
如http://www.cnblogs.com/Clingingboy/archive/2006/07/30/463471.html的示例三,說實話的,雖然用HtmlTextWriter的函數(shù)輸出標簽,但還不如直接輸出字符串來的明白,一大堆的RenderBeginTag和RenderEndTag方法。請分段呈現(xiàn)標簽,分拆函數(shù)。然后以Render開頭的函數(shù)命名,這樣看起來就清晰多了。
protected override void Render(HtmlTextWriter writer) { RenderTable(writer); } private void RenderTable(HtmlTextWriter writer) { writer.AddStyleAttribute(HtmlTextWriterStyle.BorderWidth, "0"); writer.RenderBeginTag(HtmlTextWriterTag.Table); RnderPaymentMethod(writer); RenderCreditCardNo(writer); RenderCardholderName(writer); RenderExpirationDate(writer); RenderSubmitButton(writer); writer.RenderEndTag(); }
ASP.NET控件開發(fā)技巧之使用HtmlTextWriter類規(guī)范輸出標簽3.
規(guī)范標簽ID命名
不要把控件的頭標簽把ID名字定死,防止名字重疊,可以把Control的UniqueID屬性賦給ID屬性,子標簽也一樣。可以以父標簽的id為前綴,然后再加以命名。另外的好處就是可以跟前端交互,靈活性增強。
//writer.AddAttribute(HtmlTextWriterAttribute.Id, "select1"); writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID); writer.RenderBeginTag(HtmlTextWriterTag.Select); //以父標簽的id為前綴 writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID+"_asp"); writer.RenderBeginTag(HtmlTextWriterTag.Option); writer.Write("asp.net"); writer.RenderEndTag(); writer.RenderEndTag();
ASP.NET控件開發(fā)技巧之使用HtmlTextWriter類規(guī)范輸出標簽4.
判斷輸出動態(tài)屬性
如TextBox的Text屬性,當(dāng)其屬性未設(shè)置時,呈現(xiàn)出來的標簽value屬性不呈現(xiàn),即后端要判斷,不然則要呈現(xiàn)value=""這項工作比較繁瑣。
string text = this.Text; if (text.Length > 0) { writer.AddAttribute(HtmlTextWriterAttribute.Value, text); }
關(guān)于ASP.NET中HtmlTextWriter類如何使用問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。