我正在尝试创建一个强类型的viewstate对象。
public class MyNewPage : ViewStatePage<MyNewPageViewStateStore>
在ViewStatePage的实现中,我正在实例化this.ViewState["_PageViewState"]
中的对象Store
。在派生页面中,我将使用该对象并对其进行更改。
在asp.net页面中调用的最后一个仍然可以影响视图状态的事件是什么?是Unload
吗?
在ASP.net页面生命周期中,顺序是这样的(这是简短的版本):
Preinit -> Init -> Load Viewstate -> Page Load -> Events -> preender ->保存Viewstate -> Render -> Unload
在Bold中保存viewstate更改的地方。因此,你最后一次修改viewstate并保存它的机会是PreRender(技术上你可以处理SaveViewState,这将是你最后一次修改viewstate并保存它的机会)。
MSDN: http://msdn.microsoft.com/en-us/library/ms178472.aspx additional_page_life_cycle_considerations
处理SaveViewState:public partial class MyPage: System.Web.UI.Page
{
protected override object SaveViewState()
{
// manipulate viewstate objects here -- Last Chance
return base.SaveViewState();
}
protected void Page_Load(object sender, EventArgs e)
{
}
}