我做了一些与动态控件和ViewState相关的研究.
我读到为了保持ViewState的动态控制,你必须在Page_Init事件中添加它.这是有道理的,因为PageLifeCycle是:
但我做了一个测试应用程序,我发现即使我在Page_Load事件中添加控件而不是之后,ViewState和属性值也会保留.从此我才发现矛盾的信息.有人说控件可能会追上PageLifeCycle,其他人说你必须在Page_Init中添加它们.有人可以为我澄清一下吗?
同样在msdn中我发现:
注意您可以在Page_Load事件处理程序中加载控件并正确维护视图状态.这完全取决于您是否以编程方式设置动态加载控件的任何属性,如果是,则相对于Controls.Add(dynamicControl)行执行此操作.对此的深入讨论有点超出了本文的范围,但它可能起作用的原因是因为Controls属性的Add()方法以递归方式将父视图状态加载到其子节点中,即使已经过了加载视图状态阶段.
但我并不完全理解这一点,所以我希望有人可以解释一下.先感谢您.