【发布时间】:2012-02-01 16:26:54
【问题描述】:
几天前我发布了一个关于视图状态的问题,经过一些测试后,我得出了一些结论/结果。基于这些结果,我对某人将如何做某些事情有几个问题。
这是我运行的测试结果:
- 如果 usercontrolA 从页面的
OnInit加载,那么他的视图状态将在OnLoad中可用。 usercontrolA 从其OnInit加载的所有其他控件都将在其OnLoad中准备好其视图状态。 - 如果 usercontrolA 从页面的
OnLoad加载,那么他的视图状态将在OnPreRender中可用。 usercontrolA 从其OnLoad加载的所有其他控件将在其OnPreRender中提供其视图状态。 - 如果从页面的事件(例如:按钮单击。事件在
OnLoad和OnPreRender之前触发)加载用户控件A,则其视图状态将不可用。 usercontrolA 加载的所有其他控件的视图状态都将不可用。
因此,在一个完美的世界中,您总是会使用情况 #1 加载所有控件,以便它们的视图状态在其OnLoad 上可用。不幸的是,当您需要通过按钮单击或OnLoad 加载控件时,控件是否无法在OnPreRender 阶段之前获取其视图状态?
我已经阅读了一堆关于 viewstate 的文章,并认为我理解了它,但是在我当前加载用户控件的应用程序上工作时,我很难在我的叶子上获得 viewstate(最后在链中)用户控件。
感谢任何建议和/或链接。
【问题讨论】:
标签: c# asp.net user-controls viewstate