页面中仍可能影响页面视图状态的最后一个事件



我正在尝试创建一个强类型的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)
    {
    }
}

最新更新