ASP.NET 网页生命周期事件
1.PreInit
PreInit事件是网页生命周期中非常早起的一个事件,在PreInit事件触发之后,就会加载用户设置信息与网页主题。我们通常使用PreInit事件来执行下列处理:
l 检查IsPostBack属性,来确认网页是否为第一次被处理。
l 创建或重新创建动态控件。
l 动态设置一个母版页。
l 动态设置Theme属性。
l 读取或设置用户设置文件属性值。
2.Init
在所有的控件都已经被初始化,而且所有的面板设置都已经应用之后,就会触发Init事件。可以使用此事件来读取或初始化控件属性。
3.InitComplete
此事件由Page对象触发。当网页初始化完成之后,就会触发此事件。
4.PreLoad
如果希望在Load事件触发之前,针对您的网页或控件执行一些处理,就可以使用此事件。在Page触发此事件之后,它会加载它本身与所有控件的视图状态,然后处理Request实例的回发数据。
5.Load
Page会调用Page上的Load事件处理例程,然后按照顺序为每一个子控件执行相同的操作,直到网页与所有控件被加载为止。我们通常会使用Load事件来设置控件的属性并创建数据库连接。
控件事件
我们通常使用控件的各个事件来完成各项互动操作。
6.LoadComplete
在网页上的所有其他控件都已经被加载之后,要执行的处理就可以通过此事件来完成。
7.PreRender
在控件已经被加载但是还没有解释之前,就会触发此事件。在此事件之前会执行下列操作:
l Page对象会调用网页与每一个控件的EnsureChildControls方法。
l DataSourceID属性被设置的数据绑定控件会调用其DataBind方法。
网页上的每一个控件都会触发PreRender事件,您可以利用它对网页或其控件的内容做最后的更改。
8.SavaStateComplete
在已经为网页和网页上的所有控件保存了视图状态与控制状态信息后,就会触发此事件。此时对网页与控件所作的任何更改都会被忽略。
如果您的操作是要在视图状态被保存之后才执行,则非常适合使用SaveStateComplete事件,但是请不要对控件进行任何更改。
9.Render
Render不是一个事件,而是一个方法。在此阶段,Page对象会调用每一个控件的Render方法。所有的ASP.NET服务器控件都拥有一个Render方法,它会输出要传送给浏览器的控件标记。当我们创建一个自定义控件时,通常会重写Render方法来输出控件的标记。然而,如果您的自定义控件仅仅是标准的ASP.NET服务器控件,而没有任何的自定义标记,则不需要重写Render方法。
10.Unload
每一个控件的Unload事件被触发之后,才会触发网页的Unload事件。对于控件而言,我们会使用此事件为特定的控件进行最后的清理工作,比方说,关闭某控件所使用的数据库连接。
对于网页本身而言,同样会使用此事件来进行最后的清理工作,比方说,关闭已打开的文件与数据库连接、完成记录写入操作等。
文章源自:烈火网,原文:http://www.veryhuo.com/a/view/11149.html