独立页面生命周期事件顺序
protected void Page_PreInit(object sender, EventArgs e) { Response.Write("Page_PreInit<br/>"); }
protected void Page_Init(object sender, EventArgs e) { Response.Write("Page_Init<br/>"); }
protected void Page_InitComplete(object sender, EventArgs e) { Response.Write("Page_InitComplete<br/>"); }
protected void Page_PreLoad(object sender, EventArgs e) { Response.Write("Page_PreLoad<br/>"); }
protected void Page_Load(object sender, EventArgs e) { Response.Write("Page_Load<br/>"); }
protected void Page_LoadComplete(object sender, EventArgs e) { Response.Write("Page_LoadComplete<br/>"); }
protected void Page_PreRender(object sender, EventArgs e) { Response.Write("Page_PreRender<br/>"); }
protected void Page_PreRenderComplete(object sender, EventArgs e) { Response.Write("Page_PreRenderComplete<br/>"); }
protected void Page_SaveStateComplete(object sender, EventArgs e) { Response.Write("Page_SaveStateComplete<br/>"); }
protected void Page_Unload(object sender, EventArgs e) { //页面卸载事件 这里不能用Response.Write (因为页面已经处于被卸载状态) }
protected void Button1_Click(object sender, EventArgs e) { Response.Write("Button事件触发!<br/>"); }
首次加载该页面输出结果:
Page_PreInit Page_Init Page_InitComplete Page_PreLoad Page_Load Page_LoadComplete Page_PreRender Page_PreRenderComplete Page_SaveStateComplete
点击Button1输出结果:
Page_PreInit Page_Init Page_InitComplete Page_PreLoad Page_Load Button事件触发! Page_LoadComplete Page_PreRender Page_PreRenderComplete Page_SaveStateComplete
具有Master页的生命周期事件顺序
把上面代码复制一份到Site.Master页和内容子页ContentPage.aspx,再次执行ContentPage.aspx
首次加载ContentPage.aspx页面输出结果:
Page_PreInit MasterPage_Init Page_Init Page_InitComplete Page_PreLoad Page_Load MasterPage_Load Page_LoadComplete Page_PreRender MasterPage_PreRender Page_PreRenderComplete Page_SaveStateComplete
点击Button1按钮后输出结果:
Page_PreInit MasterPage_Init Page_Init Page_InitComplete Page_PreLoad Page_Load MasterPage_Load
Button事件触发! Page_LoadComplete Page_PreRender MasterPage_PreRender Page_PreRenderComplete Page_SaveStateComplete
点击母版页Site.Master中的Button按钮
Page_PreInit MasterPage_Init Page_Init Page_InitComplete Page_PreLoad Page_Load MasterPage_Load
MasterPage-Button事件触发! Page_LoadComplete Page_PreRender MasterPage_PreRender Page_PreRenderComplete Page_SaveStateComplete
以上我总结出:
具有Master页的内容页执行时,该内容页的母版页只执行MasterPage_Init、MasterPage_Load、MasterPage_PreRender 和母版页的其他触发事件,值得说明的是Page_Unload(页面卸载事件),母版页先执行Page_Unload 事件然后内容页再执行Page_Unload事件。