就是 我想在用户控件里面保存控件的当前状态,也就是一些子控件里面的值,这个可以做到么
比如 我在用户控件里面 写了一个 隐藏域
然后 给这个隐藏域赋值  
在引用该控件的页面被刷新的时候  值还存在么?

解决方案 »

  1.   

    任何控件都要在回发时重新生成。你用鼠标往页面上拖入一个Label控件,asp.net在编译的时候就自动生成了代码在Page实例创建时(在Init阶段之前)自动创建了这个控件。同样,你拖入一个用户控件也是一样。用户控件中再拖入Label或者用户控件也是一样,也是在这个用户控件实例化时创建。之所以许多人误认为“仅仅生成一次”,是因为asp.net的编程框架让编程得太方便、门槛太低了,是因为开发者没有理解页面生命周期,他以为页面在回发前后是同一个实例。实际上是web是无状态的、回发时创建了新的实例。如果你自己手写的代码使用LoadControl动态装入用户控件,当然你就要确保回发时必须调用这个代码。例如一个按钮的事件中你使用LoadControl动态装入了一个用户控件实例,那么下一次页面上其它地方引起的回发时在page_load完成之前需要LoadControl装入这个用户控件实例(并且id相同)asp.net才能为它设置好初始状态。
      

  2.   

    呵呵 说的不错啊
    asp.net 让编程的门槛变低了
    非常感谢你的回答