

protected override void Render(HtmlTextWriter output)
{
RenderBeginTag(output);
RenderContents(output);
RenderEndTag(output);
}
protected override void RenderContents(HtmlTextWriter output){
//使用默认逻辑来呈现子控件,那么一定要调用基类中的方法。
base.Render(output);
}
public virtual void RenderBeginTag(HtmlTextWriter output)
{
//添加呈现控件的属性和样式
//AddAttributesToRender为WebControl类中的方法
AddAttributesToRender(output);
//呈现控件标签
//如label控件呈现<span
>
//textbox控件呈现<input
>
HtmlTextWriterTag tagKey = TagKey;
if (tagKey != HtmlTextWriterTag.Unknown)
{
output.RenderBeginTag(tagKey);
}
else
{
output.RenderBeginTag(this.TagName);
}
}
protected override void Render(HtmlTextWriter writer)
{
//为table标签定义属性和样式
writer.AddAttribute(HtmlTextWriterAttribute.Width, "287px");
writer.AddStyleAttribute(HtmlTextWriterStyle.BorderWidth, "0");
writer.RenderBeginTag(HtmlTextWriterTag.Table);
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write("<strong>" + PaymentMethodText + "</strong>");
writer.RenderEndTag();
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.AddAttribute(HtmlTextWriterAttribute.Name, "PaymentMethod");
writer.AddAttribute(HtmlTextWriterAttribute.Id, "PaymentMethod");
writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
writer.RenderBeginTag(HtmlTextWriterTag.Select);
//以下代码省略
}
protected override HtmlTextWriterTag TagKey
{
get { return HtmlTextWriterTag.Table; }
}
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
//为table标签定义属性和样式
writer.AddAttribute(HtmlTextWriterAttribute.Width, "287px");
writer.AddStyleAttribute(HtmlTextWriterStyle.BorderWidth, "0");
base.AddAttributesToRender(writer);
}
protected override void RenderContents(HtmlTextWriter writer)
{
//注意,此处无没有table标签,只定义其内部标签
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write(PaymentMethodText);
writer.RenderEndTag();
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.AddAttribute(HtmlTextWriterAttribute.Name, PaymentMethodSelectName);
writer.AddAttribute(HtmlTextWriterAttribute.Id, PaymentMethodSelectId);
writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
writer.RenderBeginTag(HtmlTextWriterTag.Select);
//以下省略
}
<span id="CreditCardForm5_1"><table style="border-width:0;">
<tr>
<td><strong>信用卡类型</strong></td><td><select name="PaymentMethod" id="PaymentMethod" style="width:100%;">
public class Ch4Label: Label
{
protected override HtmlTextWriterTag TagKey
{
get { return HtmlTextWriterTag.Div; }
}
}
public CreditCardForm5() : base(HtmlTextWriterTag.Table) { }
上一篇asp.net控件开发基础(5)--复杂属性、内嵌属性-.NET博客-博客园
下一篇asp.net控件开发基础(3)--回发事件-.NET博客-博客园