如下,经测试得到的执行步骤:

第01步、内容页的 Page_PreInit
第02步、母版页的 Page_Init
第03步、内容页的 Page_Init
第04步、内容页的 Page_InitComplete
第05步、内容页的 Page_PreLoad
第06步、内容页的 Page_Load
第07步、母版页的 Page_Load
第08步、母版页或内容页的 按钮点击等回发事件(Master或Content的Button事件不会同时触发)
第09步、内容页的 Page_LoadComplete
第10步、内容页的 Page_PreRender
第11步、母版页的 Page_PreRender
第12步、内容页的 Page_PreRenderComplete
第13步、内容页的 Page_SaveStateComplete
第14步、母版页的 Page_Unload
第15步、内容页的 Page_Unload

另外,转载一篇:asp.net页面事件执行顺序 (http://www.cnblogs.com/oletan/archive/2008/11/04/1326587.html#1549248)

注:为便于理解,你可以这么认为,OnPreInit方法等效于Page_PreInit方法,OnLoad方法等效于Page_Load方法

实际上呢,重写的OnPreInit 方法,其内部调用了上面的Page_PreInit方法,如此类推,重写的OnLoad方法,就是调用了上面的Page_Load方法。

如果在重写的OnLoad方法里,不写base.OnLoad(e)语句,那么Page_Load方法不会执行。

view plaincopy to clipboardprint?
  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Web;
  5. using System.Web.Security;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. using System.Web.UI.WebControls.WebParts;
  9. using System.Web.UI.HtmlControls;
  10. public partial class _Default : Page
  11. {
  12. #region OnPreInit 第一步
  13. protected override void OnPreInit(EventArgs e)
  14. {
  15. //检查 IsPostBack 属性来确定是不是第一次处理该页。
  16. //创建或重新创建动态控件。
  17. //动态设置主控页。
  18. //动态设置 Theme 属性。
  19. //读取或设置配置文件属性值。
  20. //注意
  21. //如果请求是回发请求,则控件的值尚未从视图状态还原。如果在此阶段设置控件属性,则其值可能会在下一事件中被重写。
  22. base.OnPreInit(e);
  23. }
  24. #endregion
  25. #region OnInit 第二步
  26. protected override void OnInit(EventArgs e)
  27. {
  28. //在所有控件都已初始化且已应用所有外观设置后引发。使用该事件来读取或初始化控件属性。
  29. base.OnInit(e);
  30. }
  31. #endregion
  32. #region OnInitComplete 第三步
  33. protected override void OnInitComplete(EventArgs e)
  34. {
  35. //由 Page 对象引发。使用该事件来处理要求先完成所有初始化工作的任务。
  36. base.OnInitComplete(e);
  37. }
  38. #endregion
  39. #region PreLoad 第四步
  40. protected override void OnPreLoad(EventArgs e)
  41. {
  42. //如果需要在 Load 事件之前对页或控件执行处理,请使用该事件。
  43. //在 Page 引发该事件后,它会为自身和所有控件加载视图状态,然后会处理 Request 实例包括的任何回发数据。
  44. base.OnPreLoad(e);
  45. }
  46. #endregion
  47. #region OnLoad 第五步
  48. protected override void OnLoad(EventArgs e)
  49. {
  50. //Page 在 Page 上调用 OnLoad 事件方法,然后以递归方式对每个子控件执行相同操作,如此循环往复,直到加载完本页和所有控件为止。
  51. //使用 OnLoad 事件方法来设置控件中的属性并建立数据库连接。
  52. base.OnLoad(e);
  53. }
  54. #endregion
  55. #region 控件事件 第六步
  56. protected void Button1_Click(object sender, EventArgs e)
  57. {
  58. //用这些事件来处理特定控件事件,如 Button 控件的 Click 事件或 TextBox 控件的 TextChanged 事件。
  59. //注意
  60. //在回发请求中,如果页包含验证程序控件,请在执行任何处理之前检查 Page 和各个验证控件的 IsValid 属性。
  61. }
  62. #endregion
  63. #region OnLoadComplete 第七步
  64. protected override void OnLoadComplete(EventArgs e)
  65. {
  66. //对需要加载页上的所有其他控件的任务使用该事件。
  67. base.OnLoadComplete(e);
  68. }
  69. #endregion
  70. #region OnPreRender 第八步
  71. protected override void OnPreRender(EventArgs e)
  72. {
  73. //在该事件发生前:
  74. //Page 对象会针对每个控件和页调用 EnsureChildControls。
  75. //设置了 DataSourceID 属性的每个数据绑定控件会调用 DataBind 方法。有关更多信息,请参见下面的数据绑定控件的数据绑定事件。
  76. //页上的每个控件都会发生 PreRender 事件。使用该事件对页或其控件的内容进行最后更改。
  77. base.OnPreRender(e);
  78. }
  79. #endregion
  80. #region SaveStateComplete 第九步
  81. protected override void OnSaveStateComplete(EventArgs e)
  82. {
  83. //在该事件发生前,已针对页和所有控件保存了 ViewState。将忽略此时对页或控件进行的任何更改。
  84. //使用该事件执行满足以下条件的任务:要求已经保存了视图状态,但未对控件进行任何更改。
  85. base.OnSaveStateComplete(e);
  86. }
  87. #endregion
  88. #region Render 第十步
  89. //Render
  90. //这不是事件;在处理的这个阶段,Page 对象会在每个控件上调用此方法。所有 ASP.NET Web 服务器控件都有一个用于写出发送给浏览器的控件标记的 Render 方法。
  91. //如果创建自定义控件,通常要重写此方法以输出控件的标记。不过,如果自定义控件只合并标准的 ASP.NET Web 服务器控件,不合并自定义标记,则不需要重写 Render 方法。有关更多信息,请参见开发自定义 ASP.NET 服务器控件。
  92. //用户控件(.ascx 文件)自动合并呈现,因此不需要在代码中显式呈现该控件。
  93. #endregion
  94. #region OnUnload 第十一步
  95. protected override void OnUnload(EventArgs e)
  96. {
  97. //该事件首先针对每个控件发生,继而针对该页发生。在控件中,使用该事件对特定控件执行最后清理,如关闭控件特定数据库连接。
  98. //对于页自身,使用该事件来执行最后清理工作,如:关闭打开的文件和数据库连接,或完成日志记录或其他请求特定任务。
  99. //注意
  100. //在卸载阶段,页及其控件已被呈现,因此无法对响应流做进一步更改。如果尝试调用方法(如 Response.Write 方法),则该页将引发异常。
  101. base.OnUnload(e);
  102. }
  103. #endregion
  104. }

摘自: http://blog.csdn.net/youbl/archive/2009/08/28/4492747.aspx

引用asp.net母版页后,母版页和内容页的页面事件执行顺序相关推荐

  1. ASP.NET 页面事件执行顺序 收藏

    ASP.NET 页面事件执行顺序 收藏 过程描述 下面是ASP.NET页面初始的过程: 1. Page_Init(); 2. Load ViewState; 3. Load Postback data ...

  2. ASP.NET 页面事件执行顺序

    2009-12-02 09:59:58|  分类: .C Sharp| |  标签: |字号大中小 订阅 在作完上图后,无意中看到网上类似的一篇文章,也非常精彩,转载在下面供大家参考.申明,以下内容为 ...

  3. asp.net中page对象生命周期和各事件执行顺序

    asp.net页面事件执行顺序: 一.初始化部分: 1.构造函数:创建page类的一个实例,初始化page类的属性. 2.AddParsedSubObject函数: protected virture ...

  4. [摘自MSDN] ASP.Net2.0学习 [1] 母版页 7 : 母版页和内容页中的事件

    ASP.NET ASP.NET 母版页和内容页中的事件 母版页和内容页都可以包含控件的事件处理程序.对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事 ...

  5. MOSS 2007基础:WSS 3.0 中的母版页(Master Pages)和内容页(Content Pages)

    原文地址:http://robgarrett.com/cs/blogs/software/archive/2006/07/03/2065.aspx 这篇很短的文章展示了ASP.NET2.0中的母板页和 ...

  6. ASP.NET 控制页和内容页中的事件

    控制页和内容页中都可以包含有控件的事件处理器.控件的事件通常在局部进行处理,如内容页中的控件会在内容页中引发事件,而控制页中的控件则会在控制页中引发事件.所以,内容页中的控件事件不会被发送到控制页中. ...

  7. vue项目实现从商品列表页跳转详情页后,返回列表页保持页面在原位置,且列表页刷新的方法

    vue项目实现从商品列表页跳转详情页后,返回列表页保持页面在原位置,且列表页刷新的方法 页面跳转后回退保持原位置 App.vue页面中使用keep-alive缓存组件 <template> ...

  8. ASP.NET页面事件:顺序与回传详解

    一.初始化 ·当页面被提交请求第一个方法永远是构造函数.您可以在构造函数里面初始一些自定义属性或对象,不过这时候因为页面还没有被完全初始化所以多少会有些限制.特别地,您需要使用HttpContext对 ...

  9. asp.net页面事件:顺序与回传

      [%=@title%] [%=@count%]票 [[%=@percent%]%] l 初始化 2 当页面被提交请求第一个方法永远是构造函数.您可以在构造函数里面初始一些自定义属性或对象,不过这时 ...

最新文章

  1. Linux centos 6.7设置MySQL为开机启动
  2. 标准STUN判断NAT类型的过程及改进
  3. 吃鸡服务器不接受响应,绝地求生:蓝洞优化服务器性能,从此告别掉帧延迟!...
  4. 十年磨一剑:从2009启动“去IOE”工程到2019年OceanBase拿下TPC-C世界第一
  5. [BZOJ 5072]小A的树
  6. 计算机网络数据链路层次学习
  7. [译]1-Key-Value Coding Programming Guide 官方文档第一部分
  8. JSValidation 1.0b4 发布了!
  9. asp.net 2.0中页的生存周期(Lifecycle)和动态控件[转]
  10. 【五大常用算法】一文搞懂分治算法
  11. 多linux系统u盘制作,高手教你如何做一个U盘Linux系统
  12. 中兴F450电信光猫改桥接模式
  13. 入门pandas—数据填充
  14. conda:未找到命令的解决方法
  15. 《蜗居:心理健康枕边书》摘录
  16. 近期业务大量突增微服务性能优化总结-2.开发日志输出异常堆栈的过滤插件
  17. YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21)
  18. dxf素材和dxf、plt、dst看图软件
  19. 火车头采集成功了,虽然是这么的牵强。
  20. http性能和长短连接

热门文章

  1. Spark源码剖析 - SparkContext的初始化(八)_初始化管理器BlockManager
  2. Oracle 定时器
  3. exec函数组六个函数的用法和区别
  4. 百度地图 app 点击事件无效、不触发 解决方案
  5. 使用 EasyBCD 安装Ubuntu 14.04 Error 15: file not found错误的解决方法
  6. PHP获取当前时间戳,当前时间、及解决时区问题
  7. 【异常】 Ensure that config phoenix.schema.isNamespaceMappingEnabled is consistent on client and server.
  8. Dell R720上的系统安装问题的解决办法(关于RAID建立磁盘阵列的技术)
  9. mac 安装 python mysqlclient 遇到的问题及解决方法
  10. 解决 android 高低版本 webView 里内容 自适应屏幕的终极方法