我几天前发布了一个关于viewstate的问题,并在运行一些测试后得出了一些结论/结果。基于这些结果,我有几个问题,如何有人会做某些事情。Viewstate和控件在ASP.NET
这里是我的测试,我跑了结果:
- 如果usercontrolA从页面的加载
OnInit
,那么他的视图状态将在OnLoad
可用。 usercontrolA从OnInit
加载的所有其他控件将在OnLoad
的视图状态中准备好。 - 如果从页面的
OnLoad
加载usercontrolA,则其视图状态将在OnPreRender
中可用。 usercontrolA从OnLoad
加载的所有其他控件将在其OnPreRender
中提供其查看状态。 - 如果usercontrolA是从一个页面的事件(例如:按钮单击事件在
OnLoad
之前和OnPreRender
之前触发)加载的,则其视图状态将不可用。 usercontrolA loades的所有其他控件都没有可用的viewstate。
因此,在一个完美的世界中,您将始终使用情景#1加载所有控件,以便他们的查看状态可用于其OnLoad
。不幸的是,当您需要从按钮点击或从OnLoad
加载控件时,控件在OnPreRender
阶段之前没有办法获取其视图状态?
我已经阅读了一堆关于viewstate的文章,并认为我理解它,但在加载其他usercontrols的用户控件的当前应用程序上工作时,我真的很难获得viewstate在我的叶子上最后在链中)usercontrol。
任何建议和/或链接表示赞赏。
嗨,这是我为什么试图使用viewstate的问题之一。我需要以某种方式标记我的控件在上一回发中的onclick处理程序加载后需要在下一个回传中加载。我正在考虑使用页面中的视图状态来获取值。在我的测试中,似乎这可能是要走的路。 – BlueChameleon 2012-02-01 17:51:35