此部分说明的生命周期只有部分:
---引用MSDN
|
阶段 |
说明 |
|
页请求 |
页请求发生在页生命周期开始之前。用户请求页时,ASP.NET 将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应。 |
|
开始 |
在开始阶段,将设置页属性,如 Request和 Response在此阶段,页还将确定请求是回发请求还是新请求,并设置 IsPostBack 属性。此外,在开始阶段期间,还将设置页的 UICulture 属性。 |
|
页初始化 |
页初始化期间,可以使用页中的控件,并将设置每个控件的 UniqueID 属性。此外,任何主题都将应用于页。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值。 |
|
加载 |
加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。 |
|
验证 |
在验证期间,将调用所有验证程序控件的 Validate 方法,此方法将设置各个验证程序控件和页的 IsValid 属性。 |
|
回发事件处理 |
如果请求是回发请求,则将调用所有事件处理程序。 |
|
呈现 |
在呈现之前,会针对该页和所有控件保存视图状态。在呈现阶段中,页会针对每个控件调用 Render 方法,它会提供一个文本编写器,用于将控件的输出写入页的 Response 属性的 OutputStream 中。 |
|
卸载 |
完全呈现页并已将页发送至客户端、准备丢弃该页后,将调用卸载。此时,将卸载页属性(如Response 和 Request)并执行清理。 |
程序测试页面加载顺序
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Web.UI;
6 using System.Web.UI.WebControls;
7
8 namespace Order
9 {
10 public partial class TestControls : System.Web.UI.Page
11 {
12 static int count = 0;
13 //4
14 protected void Page_Load(object sender, EventArgs e)
15 {
16 Response.Write(count + "----Page_Load <br/>");
17 count++;
18 }
19 //0
20 protected override void OnPreInit(EventArgs e)
21 {
22 base.OnPreInit(e);
23 Response.Write(count + "----OnPreInit <br/>");
24 count++;
25 }
26 //1
27 protected override void OnInit(EventArgs e)
28 {
29 base.OnInit(e);
30 Response.Write(count + "----OnInit <br/>");
31 count++;
32 }
33 //5
34 protected override void OnLoad(EventArgs e)
35 {
36 base.OnLoad(e);
37 Response.Write(count + "----OnLoad <br/>");
38 count++;
39 }
40 //3
41 protected override void OnPreLoad(EventArgs e)
42 {
43 base.OnPreLoad(e);
44 Response.Write(count + "----OnPreLoad <br/>");
45 count++;
46 }
47 //6
48 protected override void OnLoadComplete(EventArgs e)
49 {
50 base.OnLoadComplete(e);
51 Response.Write(count + "----OnLoadComplete <br/>");
52 count++;
53 }
54 //2
55 protected override void OnInitComplete(EventArgs e)
56 {
57 base.OnInitComplete(e);
58 Response.Write(count + "----OnInitComplete <br/>");
59 count++;
60 }
61 protected override void OnUnload(EventArgs e)
62 {
63 base.OnUnload(e);
64 }
65 protected override void OnDataBinding(EventArgs e)
66 {
67 base.OnDataBinding(e);
68 Response.Write(count + "----OnDataBinding <br/>");
69 count++;
70 }
71 //7
72 protected override void OnPreRender(EventArgs e)
73 {
74 base.OnPreRender(e);
75 Response.Write(count + "----OnPreRender <br/>");
76 count++;
77 }
78 protected void btnGraphics_Click1(object sender, EventArgs e)
79 {
80 Response.Write(count + "----btnGraphics_Click <br/>");
81 }
82 }
83 }