此部分说明的生命周期只有部分:

---引用MSDN

阶段

说明

页请求

页请求发生在页生命周期开始之前。用户请求页时,ASP.NET 将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应。

开始

在开始阶段,将设置页属性,如 Request和 Response在此阶段,页还将确定请求是回发请求还是新请求,并设置 IsPostBack 属性。此外,在开始阶段期间,还将设置页的 UICulture 属性。

页初始化

页初始化期间,可以使用页中的控件,并将设置每个控件的 UniqueID 属性。此外,任何主题都将应用于页。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值。

加载

加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。

验证

在验证期间,将调用所有验证程序控件的 Validate 方法,此方法将设置各个验证程序控件和页的 IsValid 属性。

回发事件处理

如果请求是回发请求,则将调用所有事件处理程序。

呈现

在呈现之前,会针对该页和所有控件保存视图状态。在呈现阶段中,页会针对每个控件调用 Render 方法,它会提供一个文本编写器,用于将控件的输出写入页的 Response 属性的 OutputStream 中。

卸载

完全呈现页并已将页发送至客户端、准备丢弃该页后,将调用卸载。此时,将卸载页属性(如Response 和 Request)并执行清理。

程序测试页面加载顺序

ASP.NET Page执行顺序(ASP.NET生命周期)
 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 }
ASP.NET Page执行顺序(ASP.NET生命周期)

相关文章:

  • 2022-12-23
  • 2022-01-06
  • 2021-12-04
  • 2021-08-24
  • 2021-08-17
  • 2021-12-11
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-26
  • 2021-07-12
  • 2022-12-23
  • 2021-12-07
  • 2021-09-08
相关资源
相似解决方案