[ASP.NET入门]页面生命周期

    今天无意之间想起了页面的生命周期,由于很久在数据库和逻辑中旋绕,没有碰到这个咚咚都有点生疏了。为了测了一下就在VS中把几个事件都重写到当前的 ASPX.CS页面中,然后加上断点就可以知道他运行的顺序了。生命周期在表现层当中很有用,特别是如果你要用到多语言,多模板等就一定要掌握每一次请求得周期,至于生命周期的定义就不多说了,也就是从请求到这次请求结束。当你访问一个网站时,你就会对服务端发送一个请求,服务器会响应你的请求被返回你的结果,这就是一个周期了。

 1 protected override void Construct() {
 2            base.Construct();
 3        }

 4        protected override void FrameworkInitialize() {
 5            base.FrameworkInitialize();
 6        }

 7
 8        protected override void InitializeCulture() {
 9            base.InitializeCulture();
10        }

11
12        protected override void AddParsedSubObject(object obj) {
13            base.AddParsedSubObject(obj);
14        }

15
16        protected override ControlCollection CreateControlCollection() {
17            return base.CreateControlCollection();
18        }

19
20        protected override void AddedControl(Control control, int index) {
21            base.AddedControl(control, index);
22        }

23
24        protected override System.Collections.Specialized.NameValueCollection DeterminePostBackMode() {
25            return base.DeterminePostBackMode();
26        }

27
28        protected override void OnPreInit(EventArgs e) {
29            base.OnPreInit(e);
30        }

31
32        protected override void OnInit(EventArgs e) {
33            base.OnInit(e);
34        }

35
36        protected override void OnInitComplete(EventArgs e) {
37            base.OnInitComplete(e);
38        }

39
40        protected override void OnPreLoad(EventArgs e) {
41            base.OnPreLoad(e);
42        }

43
44        protected override void OnLoad(EventArgs e) {
45            base.OnLoad(e);
46        }

47
48        protected void Page_Load(object sender, EventArgs e) {
49            Test.Text = "PageLoad";
50   
51        }

52
53        protected override void OnLoadComplete(EventArgs e) {
54            base.OnLoadComplete(e);
55        }

56
57        protected override void EnsureChildControls() {
58            base.EnsureChildControls();
59        }

60
61        protected override void CreateChildControls() {
62            base.CreateChildControls();
63        }

64
65        protected override void OnPreRender(EventArgs e) {
66            base.OnPreRender(e);
67        }

68        protected override void OnPreRenderComplete(EventArgs e) {
69            base.OnPreRenderComplete(e);
70        }

71
72        protected override object SaveViewState() {
73            return base.SaveViewState();
74        }

75
76        protected override void OnSaveStateComplete(EventArgs e) {
77            base.OnSaveStateComplete(e);
78        }

79
80        protected override HtmlTextWriter CreateHtmlTextWriter(System.IO.TextWriter tw) {
81            return base.CreateHtmlTextWriter(tw);
82        }

83
84        public override void RenderControl(HtmlTextWriter writer) {
85            base.RenderControl(writer);
86        }

87        protected override void Render(HtmlTextWriter writer) {
88            base.Render(writer);
89        }

90        protected override void RenderChildren(HtmlTextWriter writer) {
91            base.RenderChildren(writer);
92        }

93
94        protected override void OnUnload(EventArgs e) {
95            base.OnUnload(e);
96        }

   从上面我们可以看出页面执行的顺序,当然还有几个事件没有被列出来,如LoadViewState(发生在OnInit的之后),还有几个特殊的事件我们可以如下做法来扩展程序:
1this.Unload += new System.EventHandler(this.MyPage_Unload);
2  this.Load += new System.EventHandler(this.MyPage_Load);
3  this.Init += new System.EventHandler(this.MyPage_Init);
4  this.PreRender += new System.EventHandler(this.MyPage_PreRender);
  
   就写到这了,郁闷的事情发生了,我写的都OK了在FireFox里居然发布出去,一不小心按一下刷新什么都没有了,郁闷阿,一篇文章写两遍,真的想气死我啊。随便记录一下,呵呵,如果有什么错误被你发现了,请不要吝惜你的键盘给我...谢谢!

关于作者:网魂小兵

文章出处:http://xdotnet.cnblogs.com

本文可以随意转载,摘抄等非商业用途。

为了尊重作者成果,在转载和摘抄的时候请留下作者名称和出处。

原文地址:https://www.cnblogs.com/xdotnet/p/aspnet_pagelife.html