using System; using System.Collections.Generic; using System.Web;
/// <summary> ///Attribute 的摘要说明 /// </summary> using System; using System.Web.UI; using System.ComponentModel;
namespace CustomComponents { /// <summary> /// [DefaultPropertyAttribute("CardholderNameText")] /// 指定组件的默认属性。 /// 所有的特性实际上是类,按照约定,这些类的名字以'Attribute'结尾, /// DefaultProperrtyAttribute实际上是一个DefaultProperrtyAttribute类 /// ToolboxDataAttribute 类 /// 默认情况下,Visual Studio 等工具的可视化设计器创建空标记。 /// 当将控件从可视化设计器的工具箱中拖放到设计图面时,这是表示该控件在默认状态时的标记。 /// 若要指定初始默认值,控件可以利用此属性。可以使用此属性自定义初始 HTML 内容;当将控件从工具箱中拖动到窗体上时,这些内容将放 /// 指定当从 Microsoft Visual Studio 等工具中的工具箱拖动自定义控件时为它生成的默认标记。 /// [ ToolboxData("<{0}:MyLabel runat= server Text= /// MyLabel><{0}:MyLabel>") ] /// </summary> [DefaultPropertyAttribute("CardholderNameText")] [ToolboxData(@"<{0}:CreditCardForm2 PaymentMethodText='信用卡类型' CreditCardNoText='信用卡卡号' CardholderNameText='信用卡持有者姓名' SubmitButtonText = '提交' runat='server'></{0}:CreditCardForm2>") ] public class CreditCardForm2 : Control { private string paymentMethodText = "信用卡类型"; private string creditCardNoText = "信用卡卡号"; private string cardholderNameText = "信用卡持有者姓名"; private string expirationDateText = "最后使用时间"; private string submitButtonText = "提交";
/// <summary> /// BrowsableAttribute 类 /// 指定一个属性 (Property) 或事件是否应显示在“属性”窗口中。 /// [Browsable(true)] /// DescriptionAttribute 类 /// 指定属性 (Property) 或事件的说明 /// DefaultValueAttribute 类 /// 指定属性 (Property) 的默认值 /// [DefaultValue(false)] /// CategoryAttribute 类 /// 指定当属性 (Property) 或事件显示在一个设置为“按分类顺序”模式的 PropertyGrid 控件中时, /// 用于给属性或事件分组的类别的名称 /// 一个 CategoryAttribute,它指示在一个设置为 Categorized 模式的 PropertyGrid 控件中列出属性 (Property) 或事件时, /// 将关联的属性 (Property) 或事件与之关联的类别。 /// 如果没有对属性或事件应用 CategoryAttribute,则 PropertyGrid 将属性 (Property) 或事件与“杂项”类别关联。 /// 通过在 CategoryAttribute 的构造函数中指定类别的名称,可以为任何名称创建新的类别。 ///Category 属性 (Property) 指示该属性 (Attribute) 所代表的类别的名称。Category 属性 (Property) 还以透明方式对类别名称进行本地化。 /// /// </summary> [BrowsableAttribute(true)] [DescriptionAttribute("获取和设置信用卡类型")] [DefaultValueAttribute("信用卡类型")] [CategoryAttribute("Appearance")] public virtual string PaymentMethodText { get { return this.paymentMethodText; } set { this.paymentMethodText = value; } }
[BrowsableAttribute(true)] [DescriptionAttribute("获取或设置信用卡卡号")] [DefaultValueAttribute("信用卡卡号")] [CategoryAttribute("Appearance")] public virtual string CreditCardNoText { get { return this.creditCardNoText; } set { this.creditCardNoText = value; } }
[BrowsableAttribute(true)] [DescriptionAttribute("获取或设置信用卡持有者姓名")] [DefaultValueAttribute("信用卡持有者姓名")] [CategoryAttribute("Appearance")] public virtual string CardholderNameText { get { return this.cardholderNameText; } set { this.cardholderNameText = value; } }
[BrowsableAttribute(true)] [DescriptionAttribute("获取或设置最后使用时间")] [DefaultValueAttribute("最后使用时间")] [CategoryAttribute("Appearance")] public virtual string ExpirationDateText { get { return this.expirationDateText; } set { this.expirationDateText = value; } }
[BrowsableAttribute(true)] [DescriptionAttribute("获取或设置按钮标签")] [DefaultValueAttribute("提交")] [CategoryAttribute("Appearance")] public virtual string SubmitButtonText { get { return this.submitButtonText; } set { this.submitButtonText = value; } }
protected override void Render(HtmlTextWriter writer) { writer.Write("<table style='width:287px;height:124px;border-width:0;'>"); writer.Write("<tr>"); writer.Write("<td>" + PaymentMethodText + "</td>"); writer.Write("<td>"); writer.Write("<select name='PaymentMethod' id='PaymentMethod' style='width:100%;'>"); writer.Write("<option value='0'>Visa</option>"); writer.Write("<option value='1'>MasterCard</option>"); writer.Write("</select>"); writer.Write("</td>"); writer.Write("</tr>"); writer.Write("<tr>"); writer.Write("<td>" + CreditCardNoText + "</td>"); writer.Write("<td><input name='CreditCardNo' id='CreditCardNo' type='text' /></td>"); writer.Write("</tr>"); writer.Write("<tr>"); writer.Write("<td>" + CardholderNameText + "</td>"); writer.Write("<td><input name='CardholderName' id='CardholderName' type='text' /></td>"); writer.Write("</tr>"); writer.Write("<tr>"); writer.Write("<td>" + ExpirationDateText + "</td>"); writer.Write("<td>"); writer.Write("<select name='Month' id='Month'>"); for (int day = 1; day < 13; day++) { if (day < 10) writer.Write("<option value='" + day.ToString() + "'>" + "0" + day.ToString() + "</option>"); else writer.Write("<option value='" + day.ToString() + "'>" + day.ToString() + "</option>"); } writer.Write("</select>"); writer.Write(" "); writer.Write("<select name='Year' id='Year'>"); for (int year = 2005; year < 2015; year++) { writer.Write("<option value='" + year.ToString() + "'>" + year.ToString() + "</option>"); } writer.Write("</select>"); writer.Write("</td>"); writer.Write("</tr>"); writer.Write("<tr>"); writer.Write("<td align='center' colspan='2'>"); writer.Write("<input type='submit' value='" + SubmitButtonText + "' />"); writer.Write("</td>"); writer.Write("</tr>"); writer.Write("</table>");
base.Render(writer); } } }
转载于:https://www.cnblogs.com/huqizhong/archive/2009/03/29/1424209.html
