1、上章我们为控件出局的布局了。控件包含一个文本和一个按钮,上一章的代码中的
Render方法我们采用的是硬编码(图红色方框选中的),所谓的硬编码按照我的理解就是把代码写死了,无扩展,这章我们对上章的代码进行修改,让控件公开两个属性。
2、申请两个虚属性(virtual),对于为什么申明为虚目的就是如果要重写控件或者继承的时候可以重写该属性,我们再对属性增加些信息显示,比如要显示在控件属性栏等,需要在属性上方增加元数据属性(对于什么是元数据属性大家可以参加网上的一些文章或者MSDN),例子中的Description是指定属性或者事件的说明。Browsable是指定一个属性或事件是否应显示在“属性”窗口中。
private string name = "姓名:";
/// <summary>
/// 修改或者得到文本姓名的显示值
/// </summary>
[Description("修改或者得到文本姓名的显示值")]
[Browsable(true)]
public virtual string Name
{
get { return name; }
set { name = value; }
}
private string showname = "显示";
/// <summary>
/// 修改或者得到按钮显示的显示值
/// </summary>
[Description("修改或者得到按钮显示的显示值")]
[Browsable(true)]
public virtual string ShowName
{
get { return showname; }
set { showname = value; }
}
3、对Render方法再次修改,把硬编码替换成我们申明的属性
/// <summary>
/// 将服务器控件内容发送到提供的 System.Web.UI.HtmlTextWriter 对象,此对象编写将在客户端呈现的内容
/// </summary>
/// <param name="writer">接收服务器控件内容的 System.Web.UI.HtmlTextWriter 对象</param>
protected override void Render(HtmlTextWriter writer)
{
writer.Write("<table border=\"1\" cellpadding=\"2\" cellspacing=\"3\">");
writer.Write("<tr>");
writer.Write("<td>");
writer.Write(Name);
writer.Write("</td>");
writer.Write("<td>");
writer.Write("<input id=\"Txt_Name\" type=\"text\" name=\"Txt_Name\" />");
writer.Write("</td>");
writer.Write("</tr>");
writer.Write("<tr>");
writer.Write("<td colspan=\"2\" align=\"center\">");
writer.Write("<input id=\"Txt_Show\" type=\"submit\" value=\""+ShowName+"\" name=\"Txt_Show\" />");
writer.Write("</td>");
writer.Write("</tr>");
writer.Write("</table>");
base.Render(writer);
}
代码下载地址:点击下载
本博客内容有些来源于网络或书籍如果侵害到你的权益,请及时联系我(hch458458@vip.qq.com)
版权归nethch所有,转载请注明出处!