ASP.NET事件顺序
大多数初学者会认为Page_Load事件是当页面第一次访问触发的事件,其实不然,在ASP.NET页生命周期内,Page_Load远远不是第一次触发的事件,通常情况下,ASP.NET事件顺序如下所示。
1. Page_Init()。
2. Load ViewState。
3. Load Postback data。
4. Page_Load()。
5. Handle control events。
6. Page_PreRender()。
7. Page_Render()。
8. Unload event。
9. Dispose method CALLED
1. Page_Init()。
2. Load ViewState。
3. Load Postback data。
4. Page_Load()。
5. Handle control events。
6. Page_PreRender()。
7. Page_Render()。
8. Unload event。
9. Dispose method CALLED
分别深入到init,load和prerender三个过程中,执行顺序如下:
内容页 控件 init
母版页 控件 init
母版页 init
内容页 init
母版页 控件 init
母版页 init
内容页 init
内容页 load
母版页 load
内容页控件 load
母版页控件 load
母版页 load
内容页控件 load
母版页控件 load
内容页 prerender
母版页 prerender
内容页 控件 prerender
母版页 控件 prerender
母版页 prerender
内容页 控件 prerender
母版页 控件 prerender
内容页 prerender complete
内容页 render
母版页 render
内容页 控件 render
母版页 控件 render
母版页 render
内容页 控件 render
母版页 控件 render
以上过程经过代码实验验证,对于这种执行顺序的理性分析,自己想的还不很清楚,希望高手指教!