ASP.NET -- WebForm -- 页面生命周期事件

ASP.NET -- WebForm --  页面生命周期事件
在页生命周期的每个阶段中,页将引发可运行您自己的代码进行处理的事件。
 
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 事件。
  注意:在回发请求中,如果页包含验证程序控件,请在执行任何处理之前检查 Page 和各个验证控件的 IsValid 属性。
 
7. LoadComplete
 对需要加载页上的所有其他控件的任务使用该事件。
 
8. PreRender:页上的每个控件都会发生 PreRender 事件。使用该事件对页或其控件的内容进行最后更改。
  在该事件发生前:
  Page 对象会针对每个控件和页调用 EnsureChildControls。
  设置了 DataSourceID 属性的每个数据绑定控件会调用 DataBind 方法。
 
9. SaveStateComplete
 在该事件发生前,已针对页和所有控件保存了 ViewState。将忽略此时对页或控件进行的任何更改。
 使用该事件执行满足以下条件的任务:要求已经保存了视图状态,但未对控件进行任何更改。
 
10.Render
 这不是事件;在处理的这个阶段,Page 对象会在每个控件上调用此方法。所有 ASP.NET Web 服务器控件都有一个用于写出发送给浏览器的控件标记的 Render 方法。
 如果创建自定义控件,通常要覆盖此方法以输出控件的标记。不过,如果自定义控件只合并标准的 ASP.NET Web 服务器控件,不合并自定义标记,则不需要覆盖 Render 方法。
 用户控件(.ascx 文件)自动合并呈现,因此不需要在代码中显式呈现该控件。
 
11.Unload
 该事件首先针对每个控件发生,继而针对该页发生。在控件中,使用该事件对特定控件执行最后清理,如关闭控件特定数据库连接。
 对于页自身,使用该事件来执行最后清理工作,如:关闭打开的文件和数据库连接,或完成日志记录或其他请求特定任务。
 注意: 在卸载阶段,页及其控件已被呈现,因此无法对响应流做进一步更改。如果尝试调用方法(如 Response.Write 方法),则该页将引发异常

原文地址:https://www.cnblogs.com/ChengWenHao/p/AspNetPart9.html

时间: 2024-10-09 11:35:45

ASP.NET -- WebForm -- 页面生命周期事件的相关文章

ASP.NET学习笔记——webform页面生命周期

webform运行原理 运行原理相同点:aspx和ashx运行机制差不多. 运行原理不同点: 1.执行事件管道的时候,在7,8个事件之间创建的是前台页面类对象,那后台类是什么时候创建的呢?由于aspx前台页面继承自后台,所以创建前台页面类时,后台就创建好了. 2.在第11.12事件之间,调用存放在remapHandler中的前台页面类对象的processRequest方法,会进行复杂的处理,也就是走页面生命周期. webform页面生命周期 1.通过反编译,查看前台类代码 前台代码P01Inde

asp.net 页面生命周期事件详细

(1)请求页面:页请求发生在页生命周期开始之前. (2)开始:在开始阶段,将设置页属性,如Request和Response.在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack属性. (3)初始化页面:页面初始化期间,可以使用页中的控件,并将设置每个控件的UniqueID属性.如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值. (4)加载页面:加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性. (5)验证:

WebForm页面生命周期及asp.net运行机制

1.先上几张原理图着重理解: 现在针对第四副图原理进行解析: 流程: 1.浏览器发送请求 2.服务器软件(IIS)接收,它最终的目的就是为了向客户输出它请求的动态页面生成的html代码. 3.服务器不会处理类和动态页面,所以找扩展程序 4.交给FrameWork,它其中有个类HttpRuntime,其中有个ProcessRequest()方法 5.ProcessRequest()创建了HttpWorkerRequest对象,把请求报文都封装在其中(HttpWorkerRequest中有个指针,它

ASP.NET最常用的页面生命周期事件

PreInit:在页生命周期的早期阶段可以访问的事件.在PreInit事件后,将加载个性化信息和页主题. Init:在所有的控件都已初始化,且已应用所有外观设置后引发.使用该事件来读取或初始化控件属性. InitComplete:在页初始化完成时发生. PreLoad:在Load事件之前对页面或控件执行处理.在Page引发该事件后,它会为自身和所有控件加载视图状态,然后处理Request实例包括对任何回发数据. Load:当服务器控件加载到Page对象时发生.使用IsPostBack页面属性检查

ASP.NET Web 应用程序及页面生命周期

以客户端浏览器向 ASP.NET Web 应用程序页面发送请求(Request)为起点,以浏览器收到 Web 服务器的响应(Response)为终点,这一完整的过程被称为"应用程序及页面的生命周期". ASP.NET Web 页面生命周期开始之前发生了什么? 用户浏览器向 Web 服务器(IIS)发出资源的请求. Web 服务器收到请求,会根据请求文件的扩展名(如 .aspx..ascx..ashx..asmx),指定 ISAPI 扩展来处理该请求,这里提到的扩展名将会由 aspnet

ASP.NET应用程序生命周期趣谈(四) HttpHandler和页面生命周期

在之前的三篇文章中,我们还算简明扼要的学习了asp.net的整个生命周期,我们知道了一个Request进来以后先去ISAPI Filter,发现是asp.net程序后又ASPNET_ISAPI.dll这个ISAPI Extension来进行处理.在ASPNT_ISAPI创建了Worder Process后,在管道中经过HttpModule的处理来到HttpHander的手中. 我们知道P_Handler程序员使用“乾坤大挪移”对页面进行了处理后又通过管道中的HttpModule把response

4/页面生命周期

页面的生命周期一般只指从请求页面到卸载页面的过程.这之间又具体分以下几个阶段. 1.页请求:页请求发生在页面生命周期开始之前,用户请求页面时,asp.net将确定是否需要分析和编译页. 2.开始:在开始阶段,将设置页属性,如request和response.在此阶段,页还将确定请求是回发请求还是新请求,并设置ispostback属性. 3.页初始化:在初始化期间可以使用页中的控件.并设置控件的ID属性. 4.加载:在加载期间,如果当前请求是回发请求,则将使用视图状态和控件状态恢复的信息加载控件属

(转)教你记住ASP.NET WebForm页面的生命周期

对于ASP.NET Webform的开发者,理解ASP.NET Webform的页面生命周期是非常重要的.主要是为了搞明白在哪里放置特定的方法和在何时设置各种页面属性.但是记忆和理解页面生命周期里提供的事件处理方法(method)非常困难,即使一时记住了但是过一段时间不看可能又忘了.网上有很多关于页面生命周期内部机制的文章,所以本文只准备简单覆盖技术的基础部分,更主要的目的是给大家提供一个简单得记忆页面生命周期的方法.准确的记忆ASP.NET页面生命周期每一个阶段发生了什么事情是比较困难的,一种

.NET MVC页面生命周期及传统ASP.NET页面周期

目前我主要使用.Net MVC框架进行网页创建,数据库是MSSQL Server.所以,我就用.NET MVC框架的web页面周期来说明页面的生命周期,但是我觉着其他MVC框架也是大同小异的. 本文主要分两个部分 一..NET MVC的网页生命周期 二.普通ASP.NET的网页生命周期 一..NET MVC的网页生命周期 ASP.NET MVC请求从开始到结束的每一个过程,在浏览器输入URL并敲击回车来请求一个ASP.Net MVC网站的页面之后发生的任何事情,都是页面的生命周期的一部分. 为什