asp.net页面生命周期

本文详细介绍了ASP.NET页面从初始化到卸载的整个生命周期过程,包括控件树的创建、预初始化、初始化、加载状态、处理回发数据、触发加载事件、渲染及卸载等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值