您的位置:首页 > 编程语言 > ASP

asp.net页面生命周期

2017-11-02 14:08 253 查看
asp.net 页面生命周期

1.调用FrameworkInitialize()方法初始化页面,创建控件树

2.正式开始页面的生命周期:

1.设置IsPostBack属性的值

2.触发PreInit事件,在该事件中已经可以使用IsPostBack属性了,还不能访问ViewState

–应用母版页,应用皮肤

3.触发Init()事件.递归触发Init()事件,先触发页面中每个控件的Init()事件,最后再触发页面的Init()事件.

–当Init()事件触发完毕之后,调用TrackViewState()方法,开始ViewState跟踪,就可以向ViewState中写入数据了.但上次ViewState中的值还获取不到

4.调用LoadAllState()方法,获得用户提交过来的隐藏域中的值,添加到ViewState集合中,然后就可以使用ViewState中的数据了

5.调用ProcesssPostData(_requestValueCollection,true)方法.

–根据用户提交过来的数据,判断某个服务器端控件的数据是否发生了改变,如果发生了改变,则把该控件加到一个_changedPostDataConsumers集合中,在后续的事件中,会依次触发控件的改变事件

–把那些服务器端控件提交过来的值,通过Request获取到,然后设置到某个控件中.(加载到后台隐藏类的属性中,比如this.textBox1.Text=Request[“textBox1”];).然后在后续的事件中,可以通过this.textBox1.Text来获取值

6.触发Page_PreLoad()事件,页面加载事件之前的一个事件

7.递归触发页面的Page_Load()事件,然后再触发页面上的每个控件的Load事件

8.再次调用ProcessPostData(_LeftOverPostData,false)方法.(参数二:bBeforeLoad)

9.调用RaiseChangedEvents()触发控件的改变事件.

10.调用RaisePostBackEvent()触发页面上的所有其它服务器控件的所有回发事件

11.触发Page_LoadComplete事件

12.触发Page_PreRender事件

13.触发Page_PreRenderComplete事件

14.调用SaveAllState(),保存ViewState数据

15.触发Page_SaveStateComplete事件

16.调用RenderControl()执行渲染,把服务器端控件生成对应的html标签(不是事件)

17.触发Page_Unload事件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  asp.net