• 在Asp.net中为用户控件(.ascx)添加自定义属性详解


    在Asp.net中为用户控件(.ascx)添加自定义属性详解

       
    用户控件应该是大家经常用到的一种控件。虽说它没有自定义控件的那么灵活,可以布署到任何的项目中。但在固定的项目中,使用用户控件还是非常方便的,也可以快速提高我们的工作效率。本人现在的项目中也是使用了大量的用户控件。

    大部分的自定义控件的功能,在用户控件中也能实现。
    一、本章我们主要讲解如何在用户控件中添加自定义属性。
    二、下章我们讲解如何在用户控件中添加类似于DropDownList的下拉属性。
    三、再下章我们讲解如何在用户控件中添加自定义事件。
    敬请持续关注本站。

    闲话少说,开始我们的用户控件开发之旅吧。
    一、简单属性
    新建一个用户控件WebUserControl1.ascx,然后在WebUserControl1.ascx控件中拖放一个TextBox,如果到此为止不再为WebUserControl1.ascx控件添加任何代码,那么在WebUserControl1.ascx之外我们是没有办法给这个TextBox赋值的。

    新建一个aspx页,把该控件拖放到该页中,然后右键查看该控件的属性,如下图:


    如果我们要实现在aspx页中为WebUserControl1.ascx控件的TextBox的Text赋值,就得将TextBox的Text属性公开出来。这就是为用户控件添加简单属性。
    注意:我们这里指的是属性,而不是字段。而且,这个属性必须是Public的,才能在控件外访问到。
    添加属性如下:
    using System;

    namespace WebApplication1
    {
        public partial class WebUserControl1 : System.Web.UI.UserControl
        {
    //这个就是简单属性
            public string Text
            {
                get { return this.TextBox1.Text}   
                set { this.TextBox1.Text = value; }         
            }

            protected void Page_Load(object sender, EventArgs e)
            {

            }
        }
    }

    这样,我们就可以在aspx页中访问到Text属性了,再在aspx中右键查看该控件的属性,如下图,就可以看到Text属性并为它赋值了。


    二、枚举属性
    简单属性,只能自己输入值,我们如何实现在aspx的源码中敲出属性的名称然后vs自动带出该属性的所有值呢?这个就是枚举属性。

    要实现枚举属性,首先要声明一个枚举作为该属性的值。
    现在假设我们现在要为WebUserControl1.ascx控件添加一个Color属性,该属性包含Red,Green,White三个属性值。
    先声明该枚举:
    public enum TextColor
    {
        Red,
        Green,
        White
    }

    然后添加枚举属性:
    public TextColor Color
    {
        get;
        set;
    }

    这样,我们在aspx页中敲出Color属性时就会自动带出Red,Green,White三个可选值了。WebUserControl1.ascx控件的属性也变成如下:


    以上示例的全部源码如下:
    using System;
    namespace WebApplication1
    {
        public partial class WebUserControl1 : System.Web.UI.UserControl
        {
            public enum TextColor
            {
                Red,
                Green,
                White
            }

            //这是简单属性
            public string Text
            {
                get { return this.TextBox1.Text; }
                set { this.TextBox1.Text = value; }
            }

            //这是枚举属性
            public TextColor Color
            {
                get;
                set;
            }

            protected void Page_Load(object sender, EventArgs e)
            {

            }
        }
    }
  • 相关阅读:
    安装VMware虚拟机的全过程以及基于Centos7下配置nodejs和mongodb (一)
    webpack入门1
    react心路历程
    JavaScript性能优化【转载】
    JavaScript中继承的实现
    Cookie机制和Session机制
    jQuery 最简化实现
    JavaScript 中的原型(总则)
    JS 数据类型转换以其他
    JavaScript 七种数据类型
  • 原文地址:https://www.cnblogs.com/xieon1986/p/2880366.html
Copyright © 2020-2023  润新知