一个aspx、母版页、自定义控件的页面的生命周期小结

来源:互联网 发布:java入门与实战教程 编辑:程序博客网 时间:2024/05/29 21:33

一、单个Page的生命周期

请求页面时引发的事件序列:(Init、Load、Render、SaveState、Unload)

(1)PreInit

  • 检查 IsPostBack 属性来确定是不是第一次处理该页。
  • 创建或重新创建动态控件。
  • 动态设置主控页。
  • 动态设置 Theme 属性。
  • 读取或设置配置文件属性值。

      说明

       如果请求是回发请求,则控件的值尚未从视图状态还原。如果在此阶段设置控件属性,则其值可能会在下一事件中被覆盖。

(2)Init

     在所有控件都已初始化且已应用所有外观设置后引发。使用该事件来读取或初始化控件属性。

(3)InitComplete

     由 Page 对象引发。使用该事件来处理要求先完成所有初始化工作的任务。

(4)PreLoad

     如果需要在 Load 事件之前对页或控件执行处理,请使用该事件。

      在 Page 引发该事件后,它会为自身和所有控件加载视图状态,然后会处理 Request 实例包括的任何回发数据。

(5)Load

     Page 在 Page 上调用 OnLoad 事件方法,然后以递归方式对每个子控件执行相同操作,如此循环往复,直到加载完本页和所有控件为止。使用 OnLoad 事件方法来设置控件中的属性并建立数据库连接。

 

(6)控件事件

     使用这些事件来处理特定控件事件,如 Button 控件的 Click 事件或 TextBox 控件的 TextChanged 事件。

(7)LoadComplete

     对需要加载页上的所有其他控件的任务使用该事件。

(8)PreRender

      在该事件发生前:

       Page 对象会针对每个控件和页调用 EnsureChildControls。

      设置了 DataSourceID 属性的每个数据绑定控件会调用 DataBind 方法。有关更多信息,请参见本主题后面的数据绑定控件的数据绑定事件。

       页上的每个控件都会发生 PreRender 事件。使用该事件对页或其控件的内容进行最后更改。

(9)Render

       这不是事件;在处理的这个阶段,Page 对象会在每个控件上调用此方法。所有 ASP.NET Web 服务器控件都有一个用于写出发送给浏览器的控件标记的 Render 方法。

        如果创建自定义控件,通常要覆盖此方法以输出控件的标记。不过,如果自定义控件只合并标准的 ASP.NET Web 服务器控件,不合并自定义标记,则不需要覆盖 Render 方法。

       用户控件(.ascx 文件)自动合并呈现,因此不需要在代码中显式呈现该控件。

(10)SaveStateComplete

      在该事件发生前,已针对页和所有控件保存了 ViewState。将忽略此时对页或控件进行的任何更改。
      使用该事件执行满足以下条件的任务:要求已经保存了视图状态,但未对控件进行任何更改。

(11)Unload

     该事件首先针对每个控件发生,继而针对该页发生。在控件中,使用该事件对特定控件执行最后清理,如关闭控件特定数据库连接。

     对于页自身,使用该事件来执行最后清理工作,如:关闭打开的文件和数据库连接,或完成日志记录或其他请求特定任务。

     在卸载阶段,页及其控件已被呈现,因此无法对响应流做进一步更改。如果尝试调用方法(如 Response.Write 方法),则该页将引发异常。

 

二、母版页与控件

 

在页面执行生命周期过程中,首先进行的就是母版页和内容页的合并。所以唯一可以加载母版页的事件是PreInit

执行的顺序:

 

(1)母版页控件 Init 事件。

        内容控件 Init 事件。

        母版页 Init 事件。

        内容页 Init 事件。

(2)内容页 Load 事件。

        母版页 Load 事件。

        内容控件 Load 事件。

(3)内容页 PreRender 事件。

        母版页 PreRender 事件。

        母版页控件 PreRender 事件。

        内容控件 PreRender 事件。

 

即Init事件为:控件=>母版页=>内容页

而Load事件为:内容页=>母版页=>控件

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 打工去韩国不懂韩语怎么办? 想去韩国整容没钱怎么办 专接本没接上怎么办 抄写经文写错了怎么办 在外地修车被宰怎么办 国外汇款公司名称写错了怎么办 增值税专票没有机器编码怎么办 发票右上角的编码打不全怎么办 税票名称开错了怎么办 开票名称开错了怎么办 退休党员不交党费怎么办 cad打不出来字怎么办 用cad打不出来字怎么办 打字总打错字母怎么办 mac做ppt卡住了怎么办 mac的ppt卡住了怎么办 淘宝店铺被屏蔽了怎么办 淘宝申请售后卖家拒绝怎么办 淘宝投诉卖家入口关闭怎么办 遇见最喜欢孩子的父母怎么办 房屋备案表丢了怎么办 淘宝发布商品没有品牌怎么办 电子发票名称写错了怎么办 合同写错了划掉怎么办 进京证日期错了怎么办 买车时谈的协议与合同不一致怎么办 新车上牌找不到流水号怎么办 开票数量比入库数量少怎么办 我贷款的app忘了怎么办 网贷名字忘了怎么办 附件太大邮件发不出去怎么办 孩子出生足印单子丢了怎么办 保险名字写错了怎么办 行驶证和身份证名字不一样怎么办 上户后发现合格证和车不一样怎么办 新车上户重量不一样怎么办 医保卡和身份证名字不一样怎么办 保险标志保险卡都没给怎么办 新买的电动自行车不符合标准怎么办 电费的户号12位怎么办? 买到过期的药品怎么办