当究竟是视图状态从控制的.Viewstate属性访问?根据我的观察,最接近的事件是在Page.PreLoad事件上(在Page.InitComplete,Viewstate仍然不可用).
但是,对于实现IPostBackEventHandler接口的控件,调用LoadValue()方法并且.Viewstate集合可用(这发生在Page.InitComplete之后和Page.PreLoad之前).
有没有人知道可以用来了解Viewstate何时可用的任何其他事件?或者可以用来知道Viewstate是否已加载的任何技巧(不包括对私有/受保护/内部成员的反射)?
何时可以从控件的.Viewstate属性访问视图状态?
后LoadViewState法已运行.
通常这意味着在Init阶段之后和Load和Handler之前(例如"OnClick")阶段.但ViewState非常复杂,所以我强烈建议您阅读这篇优秀文章,以真正了解ViewState.
既然你可以覆盖这个LoadViewState方法,那么这就是你提出任何一种技巧的好地方:
protected override void LoadViewState(object savedState)
{
base.LoadViewState(savedState);
this.ViewStateLoaded = true; // or you could fire an event or something
UpdatePanelVisibility();
}
Run Code Online (Sandbox Code Playgroud)
当然,这确实假设您使用自己的控件实现,但情况并非总是如此.
| 归档时间: |
|
| 查看次数: |
7614 次 |
| 最近记录: |