我动态生成的控件,只能放在 
 if (!IsPostBack)
 {}外面,这样点Button才能取到值,但放在 
 if (!IsPostBack)
 {}外面,每次按Button都要重新动态生成一次控件,请问如何解决?让控件只生成一次以后点Button都不生成了

解决方案 »

  1.   

    请问如何解决?让控件只生成一次以后点Button都不生成了==========非常遗憾的告诉你, 不可能!!!!每次都得生成!这是 ASP.NET 的规矩。
      

  2.   

    至于为什么,我想 Scott 这篇文章可以,解答创建动态数据输入用户界面 http://www.microsoft.com/china/msdn/library/webservices/asp.net/dnasppDynamicUI.mspx?mfr=true
      

  3.   

    那这种情况怎么办:我动态生成CheckBoxLis并付上随机,并且选择打勾.再点Button时读取它的值.
    如何保存动态生成的CheckBoxLis内容和用户的选择
      

  4.   

    每次按Button都要重新动态生成一次控件,请问如何解决?让控件只生成一次以后点Button都不生成了
    ---------------------
    是不可能的,其实你拖到页面上的一般的控件,其实在postback的时候也是要重新加载的。那这种情况怎么办:我动态生成CheckBoxLis并付上随机,并且选择打勾.再点Button时读取它的值.
    如何保存动态生成的CheckBoxLis内容和用户的选择
    ------------------------------------------
    你用现在这种方式不行吗,就用你现在的方式没问题的。因为你ASP.NET会保存以前的状态,并把你动态加载的控件恢复到以前的状态!!!
      

  5.   

    请问如何解决?让控件只生成一次以后点Button都不生成了==========非常遗憾的告诉你, 不可能!!!!每次都得生成!这是 HTTP 的规矩。
    那这种情况怎么办:我动态生成CheckBoxLis并付上随机,并且选择打勾.再点Button时读取它的值.
    如何保存动态生成的CheckBoxLis内容和用户的选择
    -----------------------------
    写个方法将值存在 Session 里,这也是 HTTP 的规矩。
      

  6.   

    控件是一样,但内容会发生变化 
    每次取的数据库内容不一样,所以一点button显示的内容就不一样
      

  7.   

    控件是一样,但内容会发生变化 
    -------------------------------
    知道,我是说你每次改变了你动态控件的值,ASP.NET都会自动记住这些值,然后当你postback回服务器,控件再一次被动态加载,ASP.NET会把上次记住的值赋值给这些动态添加的控件。其实很简单,你可以直接试试就知道会不会有你说的问题了,不会有你说的问题的!!!
      

  8.   

    可以用viewstate["state"]1.第一次点击按钮的事件内
    button1_onclick()
    {
      //给vidwstate附上值
      viewstate["state"]   ="state";
      if(viewstate["state"]==null)
      {
        //动态加载控件的代码
      }
    }
      

  9.   

    怎么说呢?我Page_Load时从数据库里取值,通过这些值生成控件,这些值是随机的,所以每次button生成值的顺序就发生变化了,界面就变了
      

  10.   

    这个就比较麻烦了,等于你每次加载button的数量都有可能不一样。一般要求页面在加载和postback回去的时候动态加载的控件要是一致的!!!