Asp.Net中事件的执行顺序是什么

Asp.Net中事件的执行顺序是什么,asp.net,Asp.net,有人能告诉我Asp.Net中事件的执行顺序吗 PreInit 在开始阶段完成后和初始化阶段开始前引发 将此事件用于以下操作: 检查IsPostBack属性以确定这是否是第一次处理页面。此时还设置了IsCallback和IsCrossPagePostBack属性 创建或重新创建动态控件 动态设置母版页 动态设置主题属性 读取或设置配置文件属性值 注意:如果请求是回发,则控件的值尚未从视图状态还原。如果在此阶段设置控件属性,则其值可能在下一个事件中被覆盖 Init 在初始化所有控件并应用任何外观设置

有人能告诉我Asp.Net中事件的执行顺序吗

PreInit

在开始阶段完成后和初始化阶段开始前引发

将此事件用于以下操作:

检查IsPostBack属性以确定这是否是第一次处理页面。此时还设置了IsCallback和IsCrossPagePostBack属性

创建或重新创建动态控件

动态设置母版页

动态设置主题属性

读取或设置配置文件属性值

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

Init

在初始化所有控件并应用任何外观设置后引发。单个控件的Init事件发生在页面的Init事件之前

使用此事件读取或初始化控件属性

InitComplete

在页面初始化阶段结束时引发。在Init和InitComplete事件之间只发生一个操作:打开对视图状态更改的跟踪。视图状态跟踪使控件能够持久化以编程方式添加到ViewState集合的任何值。在打开视图状态跟踪之前,添加到视图状态的所有值都会在回发过程中丢失。控件通常在引发Init事件后立即打开视图状态跟踪

使用此事件对要确保在下次回发后持久化的视图状态进行更改

预加载

在页面加载自身和所有控件的视图状态后,以及在处理请求实例中包含的回发数据后引发

加载

Page对象调用Page对象上的OnLoad方法,然后递归地对每个子控件执行相同的操作,直到加载页面和所有控件。单个控件的加载事件发生在页面的加载事件之后

使用OnLoad事件方法在控件中设置属性并建立数据库连接

控制事件

使用这些事件来处理特定的控件事件,例如按钮控件的单击事件或TextBox控件的TextChanged事件

注意在回发请求中,如果页面包含验证程序控件,请在执行任何处理之前检查页面和各个验证控件的IsValid属性

加载完成

在事件处理阶段结束时提出

对于需要加载页面上所有其他控件的任务,请使用此事件

预渲染

在页面对象创建呈现页面所需的所有控件(包括复合控件的子控件)后引发。(为此,页面对象为每个控件和页面调用EnsureChildControl。)

Page对象在Page对象上引发PreRender事件,然后递归地对每个子控件执行相同的操作。单个控件的PreRender事件发生在页面的PreRender事件之后

在呈现阶段开始之前,使用事件对页面或其控件的内容进行最终更改

预渲染完成

在设置了DataSourceID属性的每个数据绑定控件调用其DataBind方法后引发。有关详细信息,请参阅本主题后面部分中数据绑定控件的数据绑定事件

SaveStateComplete

为页面和所有控件保存视图状态和控件状态后引发。此时对页面或控件的任何更改都会影响呈现,但在下次回发时将不会检索到这些更改

渲染

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

如果创建自定义控件,通常会重写此方法以输出控件的标记。但是,如果自定义控件仅包含标准ASP.NET Web服务器控件而不包含自定义标记,则不需要重写呈现方法。有关详细信息,请参见开发自定义ASP.NET服务器控件

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

卸载

为每个控件引发,然后为页面引发

在控件中,使用此事件对特定控件执行最终清理,例如关闭特定于控件的数据库连接

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


注意在卸载阶段,页面及其控件已呈现,因此您无法对响应流进行进一步更改。如果尝试调用Response.Write方法等方法,页面将抛出异常。

您是指页面生命周期吗?谢谢您的回答。