因为你的Label的Text 属性并没有对外公开,试试把ConnectionString属性直接跟Label1的Text属性关联起来,就相当于通过公开的ConnectionString的属性把Label1的Text属性公开了:
public string ConnectionString
    {
        get {return Label1.Text;}
        set {Label1.Text = value;}
    }

解决方案 »

  1.   

    你需要改ASCX, 我第一次也犯过这错误
    <script runat="server">
        public string ConnectionString
        {
            get {return ShipMethod.Text;}
            set {ShipMethod.Text= value;}
        }
        public void Page_Load(Object Source, EventArgs E)
        {
          if (!IsPostBack)
          {
           ShipMethod.Text="Init Str";
          }
        }
    </script>
      

  2.   

    谢谢二位指点,确实有效。
    不过我不大理解这是为什么,假如用户控件里的程序我改一行:
    ShipMethod.Text="This is " + ConnStr;
    或者再增加一个label,两个label都用到connstr这个变量,该怎么办?
    这样的要求,该如何修改 get set呢?
    kent,按控件设计的要求,shipmethod这个label控件应该是私有的,我程序的错误应该不是与公有私有有关吧?还请两位及其他大侠继续指点,多谢多谢!
      

  3.   

    的确跟页面执行的顺序有关。你如果在text1.aspx的Page_Load事件中执行就是对的。void Page_Load( Object sender ,EventArgs e ){
          UserControl1.ConnectionString=TextBox1.Text;
          Label1.Text=UserControl1.ConnectionString;
        }
      

  4.   

    Label1.Text=ConnStr;
    Label2.Text=ConnStr;