第一章 .Net 控件开发(WebForm) 开发简单自定义控件(2) 控件属性的申明

 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所有,转载请注明出处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值