用户控件

来源:互联网 发布:数据分析师笔试题目 编辑:程序博客网 时间:2024/05/01 22:42
用户控件
一、需基本掌握
1. 概述
  a) 与普通控件的比较
  b) 优点
2. 创建及使用用户控件
     a) 创建
     b) 添加至网页上
     c) 制作博客导航条
3. 设置用户控件
     a) 页面上访问用户控件的数据
     b) 访问用户控件中的属性
     c) 用户控件中访问页面中的控件


二、了解用户控件
    用户控件是一种复合控件,工作原理非常类似于 ASP.NET 网页 - 您可以向用户控件添加现有的 Web 服务器控件和标记,并定义控件的属性和方法。然后可以将控件嵌入 ASP.NET 网页中充当一个单元。


三、页面上访问用户控件中的数据
方法一:
    使用用户控件的FindControl方法,找到用户控件中的控件,进一步取得其数据(不需要在控件中处理,但是需要知道用户控件中要使用的控件的ID)

    --  举例

      protected void Button1_Click(object sender, EventArgs e)
    {
        #region 
        DropDownList ddl = this.city1.FindControl("DropDownList1") as DropDownList ;             
        if (ddl != null)
            this.Label1.Text = "省份:" + ddl.SelectedItem.Text + "(" + ddl.SelectedValue + ");";
        ddl = this.city1.FindControl("DropDownList2") as DropDownList;
        if (ddl != null)
            this.Label1.Text += "城市:" + ddl.SelectedItem.Text + "(" + ddl.SelectedValue + ");";
        #endregion

}
              用户控件     三、方法一、二的图片

方法二:
    为控件增加属性(方法),使用该属性访问用户控件中的数据(在目标页面中使用时,简单,但是不够灵活)

    --  举例

   用户控件中的代码

   public string ProvinceCity

    {
        get
        {
            return this.DropDownList1.SelectedItem.Text + 
                "(" + 
                this.DropDownList1.SelectedValue + 
                ");" +
                this.DropDownList2.SelectedItem.Text + 
                "(" + 
                this.DropDownList2.SelectedValue + 
                ")";
        }

    }

   页面中的代码

      protected void Button1_Click(object sender, EventArgs e)
    {
        this.Label1.Text = this.city1.ProvinceCity;
    }


四、用户控件中访问页面中的控件
方法一:
    在用户控件中使用Parent属性找到页面,再通过FindControl方法找到要访问的控件

    --举例

    用户控件中的代码

   protected void Button1_Click(object sender, EventArgs e)
    {
        Label lbl = this.Parent.FindControl("Label1") as Label;//Parent是用户控件的页面
        lbl.Text = this.DropDownList2.SelectedItem.Text;
    }



方法二:
    为用户控件添加事件,在页面中处理事件,进而实现在控件中访问页面中的控件

举例:

    用户控件中的代码   

    --public delegate void CitySelectHandler(object sender,string selectCity);//委托

    -- public event CitySelectHandler OnCitySelect;//事件
    --protected void Button1_Click(object sender, EventArgs e)
    {
        if (OnCitySelect != null)
        {
            OnCitySelect(this, this.DropDownList2.SelectedItem.Text);//方法
        }

    }

下边是页面中的代码

protected void Page_Load(object sender, EventArgs e)
    {
        this.select1.OnCitySelect += new CitySelectHandler(select1_OnCitySelect);
    }


    void select1_OnCitySelect(object sender, string selectCity)
    {
        this.Response.Write(selectCity);
    }





原创粉丝点击