比如说现在有a.aspx,a.ascx
在a.ascx里有一个<asp:hyperlink id="test" runat="server" />我在a.aspx里怎么设置TEST的属性??比如说test.text

解决方案 »

  1.   

    要想设置自定义控件的属性,首先要将改属性设为public 
    然后
    -------------a,aspx页面的Page_Load事件中----------
    //假设你的用户控件所在命名空间为MyUserControls,类名为TestControl
    MyUserControl.TestControl testControl=(MyUserControl.TestControl)Page.FindControl("你的用户控件的ID");
    testControl.test="你要设置的值";
    ------------------------------------------------------------------------
      

  2.   

    最好用你的用户控件再.aspx页面里面的父控件进行FindControl查找!
      

  3.   

    查找完然后再判断下if(testControl!=null){}
      

  4.   

    greennetboy(我的老婆叫静静) 
    正解
      

  5.   

    在a.ascx控件中把名为test的Hyperlink控件Text属性公开,
    在a.ascx中可以进行类似下面的定义:public string testText
    {
      get
      { retrun test.Text;}
      set
      { test.Text = value;}
    }在你的页面中定义:
    protected a aCtrl;//控件定义
    ...设定值
    aCtrl.testText = "abcdefg"
    或引用
    string s = aCtrl.testText
      

  6.   

    greennetboy(我的老婆叫静静) 
    用户控件有命名空间的吗???不是定制控件 JadyZhu(木独朱)
    没有试验成功,能不能写个完整些的,我测试一下,最好VB来写..
      

  7.   

    基本上同  JadyZhu(木独朱) :public string testText
    {
      get
        EnsureChildControls();
      { retrun test.Text;}
      set
        EnsureChildControls();
      { test.Text = value;}
    }
    到底是在设置属性的时候直接写到内部子控件上,还是推迟到控件Render的时候才写上(我是这样的,所以我其实不会写成上面这样的代码),都是可以的,只是执行效率不同。
      

  8.   

    控件里边有id为test的文本框:public property testText as string
      get property
        EnsureChildControls()
        retrun test.Text
      end get
      set property(value as string)
        EnsureChildControls()
        test.Text = value
      end set
    end property