ASP.Net 页面生命周期

1.页面生命周期的主要阶段包括: 阶段 事件/方法  数据库

页面初始化          Page_Init  
加载View State      LoadViewState   
回发数据处理      LoadPostData   
页面加载          Page_Load   
回发通知          RaisePostDataChangedEvent  
回发事件处理     RaisePostBackEvent  
页面预渲染       Page_PreRender   
保存             viewstate SaveViewState   
Page渲染         Page_Render   
Page 卸载       Page_UnLoad  浏览器

2.页面生命周期的主要事件:post

PreInit:ui

1.检查IsPostBack 属性this

2.动态设置Master Pagespa

3.动态设置Theme日志

4.设置控件的默认值(UniqueId等)对象

5.从新建立动态控件(初始化控件),初始化控件的值递归

Init: 这个事件发生在全部的控件被初始化,全部的皮肤设置被应用之后。它用来读取或者初始化控件属性。它可以用来注册一些aspx页面中没有指出的控件的事件。生命周期

InitComplete: Use this event for processing tasks that require all initialization to be complete.

PreLoad: 加载页面的ViewState和全部的控件,而后处理全部的包含在Request实例中的postback数据。

Load: 这个事件多是你们最熟悉的了。须要注意的是,Page对象会递归的调用子控件的onload事件直到页面和全部的子控件被加载完成。这个事件主要用来设置控件属性的值,创建数据库链接(一般不这么作)。

Validation: 若是你的控件要求验证,验证会在这个阶段发生,这个时候你能够检查控件的IsValid属性。跟这个阶段关联的事件是Validate,它有一个能够接受验证字符串群的重载方法(overload method),这个重载方法执行特定控件群的验证。

Control events: 这个就很少说了,主要是处理控件的事件,例如click。这也就让咱们明白了每次咱们click一个Button的时候,其实是要先去执行load事件而后才执行click事件的,通常咱们用!IsPostBack来判断一下从而避免执行没必要要的加载逻辑。

LoadComplete: 页面全部的控件都被加载之后执行,暂时没有想到用来干什么。。。

PreRender: 在HTML被生成以前这是最后一个事件。每个页面中的控件都有PreRender的过程。在这里对将要输出的HTML结果进行最后一次修改。

SaveStateComplete: 在这个时间发生以前,已经保存了全部控件和页面的,任何对page或者控件的改动都不会产生左右。暂时没想到用来干啥。

Render: 它不是一个事件而是一个方法。工做就是把HTML写回客户端浏览器。

UnLoad: 页面中的每个控件都会发生这件事。在控件中,使用这个事件来作清理工做,例如关闭数据库链接等。对与页面自己也是作清理工做,例如关闭打开的文件和数据库链接,或者结束日志或者其它指定的工做。

须要说明的是,每次Request都会建立一个全新的Page类的实例,因此在页面中的本身定义的字段是不能在两次request中传递值的,须要使用viewstate来存储。

相关文章
相关标签/搜索