很感謝大家給我的第一篇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>");
}
}
}