看一下你test.ascx.cs里面声明控件用public

解决方案 »

  1.   

    usercontorl 内 公布一个属性 读写 text
      

  2.   

    test.ascx: 
    public partial class models_test : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {    }
    }default.aspx:  public void Page_Load(object sender, EventArgs e)
        {
            Test1.titleTest.text = "1";    }
      

  3.   

    vs.net 2005 里面没有声明控件的
      

  4.   

    usercontorl 内 公布一个属性 读写 text,再在usercontorl 里用属性给控件的Text属性赋值
      

  5.   

    usercontorl 内 公布一个属性 读写 text,再在usercontorl 里用属性给控件的Text属性赋值??
    这个怎么去做?
      

  6.   


    回复中已经有人解决了你的问题,可能是你没有看明白public partial class models_test : System.Web.UI.UserControl
    {
    }这个是你的 test.ascx 所对应的类,其实它还有另一半 test.ascx.designer.cs 文件public partial class models_test
    {
        protected HyperLink titleTest;
    }C# 编译器会把他们合在一起,就变成了: public partial class models_test : System.Web.UI.UserControl
    {
        protected HyperLink titleTest;
    }你要注意,这个 titleTest 成员前面的修饰符是 protected,是受保护的这意味着,你只能在该类或者该类的派生类中使用 titleTest,超出这个范围是绝对不允许的!但是,你恰恰就是在其他类里违反了这个规则:default.aspx:public partial class _Default : System.Web.UI.Page 
    {
    public void Page_Load(object sender, EventArgs e)
    {
    Test1.titleTest.text = "1";
    }
    }其他网友已经给出了解决办法,那么代码实现可以这样写:在 models_text 类里加入一个 titleTestText 属性public partial class models_test
    {
        protected HyperLink titleTest;
        
        public string TitleTestText
        {
            set
            {
    titleTest.Text = value;
            }
            
            get
            {
    return titleTest.Text;
            }
        }
    }注意这个 TitleTestText 是以 public 修饰符修饰的,这样才可以在其他类里访问这个属性接下来,修改 default.aspxpublic partial class _Default : System.Web.UI.Page 
    {
    public void Page_Load(object sender, EventArgs e)
    {
    // Test1.titleTest.text = "1";
    Test1.TitleTestText = "1";
    }
    }另外,请多留心面向对象方面的知识