自定义控件有一个属性A,值为int型。Default.aspx页面有如下内容:
一、UpdatePanel 中有两个控件:
    1.自定义控件uc1,在设计窗口把A的值设为100;
    2.按钮button1,在onclick事件中uc1.A=1;二、UpdatePanel外面,有一个按钮 button2
  
问题:
 按下button1,再按button2,在button2的onclick事件中取uc1.A的值,结果uc1.A的值不是1而是100
 我该怎么做才能改变A的值。郁闷一天啦,感觉就是一个类型说明之类的语句,就是没找到。
例:[XXXX]
     public int A{get;set;}

解决方案 »

  1.   

    你要吧UC1.A的值存入viewstate,cache,session之类的对象中取的时候也从这写对象里取就OK了
      

  2.   

    我不想那样做,实际上是一个很大的控件,属性有几十个,每个页面使用多个。
    TextBox.Text属性就可以,我自定义的控件一定可以。
      

  3.   

    TextBox会自动保存viewstate的
    你这样定义控件的属性
    public string Property1
    {
        get{return ViewState["Property1"] as string;}
        set{ViewState["Property1"]=value;}
    }
      

  4.   

    主要是你的控件的生命周期。先加载主页面的PageLoad,然后是控件的PageLoad, 然后才是 ButtonClick,先仔细的跟踪下,看看代码执行的顺序,然后再研究下 asp.net 的页面生命周期。
      

  5.   

    和xiaoqhuang的方法一样。//.ascx
    public int A
    {
            get { return (int)ViewState["A"]; }
            set { ViewState["A"] = value; }
    }
      

  6.   


      你使用的是Ajax的更新面板是吧!
       
         第一步: 设置断点在button1中,看看是否执行该事件.
          第二步: 若第一步没有问题,检查自定义控件.问题出在没有把值赋给该控件.
      若没搞定,把代码赋值过来.