ascx代码        private int _cID; //客户单位ID
        private string _company; //客户单位名称
        public int cID
        {
            set { _cID = value; }
        }
        public string Company
        {
            set { _company = value; }
        }        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Label1.Text = this._cID.ToString();
                Label2.Text = this._company;
            }
        }在aspx页面中加入这个控件。<uc2:aa ID="aa1" runat="server" /> 然后在代码中给这个控件的属性赋值        protected void img2_Click(object sender, ImageClickEventArgs e)
        {
            aa1.Company = labCompany.Text.ToString();
            aa1.cID = int.Parse(cID.Text.ToString());  
        }为什么在ascx里面的label1和label2 中取不到aspx页面所赋的值呢?显示的label1为0,label2为空

解决方案 »

  1.   

    既然你都这样赋值了 Label1.Text = this._cID.ToString();
                    Label2.Text = this._company;
    为什么不直接  aa1.Company = this._company;
                aa1.cID = this._cID.ToString();
      

  2.   

    Page_Load会最新执行,那时候,你还没赋值呢,而当你赋值后,因为有Page.IsPostBack,所以不会执行Label1.Text = this._cID.ToString();等代码
      

  3.   

    .net运行机制的问题,2楼正解。
      

  4.   

    没明白么。label1是在ascx中啊..aa1是ascx控件放到aspx中后啊。怎么aa1.company=this._company?