很感謝大家給我的第一篇ASP.NET控件開發的支持!在寫這些之前,我也看了一些例子,想選中一些好 上手的例子,這樣,可能一些例子大家以前都見過,但是我想說:同樣是彈鋼琴,同樣一首“命運交響曲 ”,有的人彈的讓人蕩氣回腸,有的人彈的就很一般。
受了李建忠老師的啟發,發現用一種演化式的讓人更好的接受。
好了,廢話不說了。繼續開發!希望大家支持!
我們之前開發了一個很簡單的自定義的控件,方法很簡單,只是把原來的html文本傳入 writer.Writer()方法的參數,然後輸出。其實從模式的角度看,這可說是個Template模式(只是提下而 已,有興趣的朋友可以和我討論)!
大家再來看看代碼:
using System; using System.Collections.Generic; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace CreditCardForm { public class CreditCardForm1:Control { protected override void Render(HtmlTextWriter writer) { writer.Write ("<table style='width:287px;height:128px;border-width:0'>"); writer.Write ("<tr>"); writer.Write ("<td>支付方式</td>"); writer.Write ("<td>"); writer.Write ("<select name='paymentMethod' id='paymentMethod' style='width:100%'>"); writer.Write ("<option value='0'>Master</option>"); writer.Write ("<option value='1'>Visa</option>"); writer.Write ("</select>"); writer.Write ("</td>"); writer.Write("</tr>"); writer.Write("<tr>"); writer.Write("<td>信用卡號</td>"); writer.Write("<td><input type='text' name='CreditCardNo' id='CreditCardNo'/></td>"); writer.Write("</tr>"); writer.Write("<tr>"); writer.Write("<td>持卡人</td>"); writer.Write("<td><input type='text' name='CardholderName' id='CardholderName' /></td>"); writer.Write("</tr>"); writer.Write("<tr>"); writer.Write("<td>過期時間</td>"); writer.Write("<td>"); writer.Write("<select name='Month' id='Month'>"); for (int month = 1; month < 13; month++) { writer.Write("<option value=" + month.ToString() + ">" + month.ToString() + "</option>"); } writer.Write("</select>"); writer.Write(" "); writer.Write("<select name='Year' id='Year'>"); for (int year = 2008; year< 2014; year ++) { writer.Write("<option value=" + year.ToString() + ">" + year.ToString() + "</option>"); } writer.Write("</select>"); writer.Write("</td></tr>"); writer.Write("<tr>"); writer.Write("<td align='center' colspan='2'>"); writer.Write("<input type='submit' value='提交'/>"); writer.Write("</td></tr>"); } } }