我有一个用户控件名treelist,内有一个label控件
我在a.aspx引用这个用户控件,请问如何在a.aspx中控件中控制label的显示内容,是不是只能用用户控件的公共属性方法,能不能有其它的办法

解决方案 »

  1.   

    你可以给那个label写属性之类的,当然是在那个用户控件工程里去写,也方法也行。 估计你这个应该是属于组合控件。 如果是单个控件的话,你可以继承它的基类,去重写它的一些方法和属性,或者添加自己的属性和方法,语法嘛,GOOGLE搜下就有了
      

  2.   

    从面向对象的封装角度来说,当然是要在用户控件内写属性过程来访问用户控件中的子控件。虽然短期内你会觉得直接public这个Label会很好用,但那样其实是很危险的,就像在你的项目中埋下了定时炸弹。而通过属性访问则可以使你对以后的设计更加灵活,也更安全、更符合逻辑
      

  3.   

    可以使用属性来封装
    在用户控件中public string LabelText
    {
    set{ this.label1.Text = value;}
    get { return this.label1.Text;}
    }假设你的控件名称是 MyUserControl使用:直接将用户控件拖到你的页面上,更改名称为myUserControl;
    在使用之前先定义:protected MyUserControl myUserControl;//注意,这个名称应该和你的用户控件的名称相同;然后就可以直接调用了:myUserControl.LabelText = "****";
    string lableText = myUserControl.LabelText;