分享
 
 
 

控件执行生命周期(From MSDN)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

每次请求 ASP.NET 页时,服务器就会加载一个 ASP.NET 页,并在请求完成时卸载该页。页及其包含的服务器控件负责执行请求并将 HTML 呈现给客户端。虽然客户端和服务器之间的通信是无状态的和断续的,但是必须使客户感觉到这是一个连续执行的过程。

这种连续性假象是由 ASP.NET 页框架、页及其控件实现的。回发后,控件的行为必须看起来是从上次 Web 请求结束的地方开始的。虽然 ASP.NET 页框架可使执行状态管理相对容易一些,但是为了获得连续性效果,控件开发人员必须知道控件的执行顺序。控件开发人员需要了解:在控件生命周期的各个阶段,控件可使用哪些信息、保持哪些数据、控件呈现时处于哪种状态。例如,在填充页上的控件树之前控件不能调用其父级。

下表提供了控件生命周期中各阶段的高级概述。有关详细信息,请点击表中的链接。

阶段

控件需要执行的操作

要重写的方法或事件

初始化

初始化在传入 Web 请求生命周期内所需的设置。请参见处理继承的事件

Init 事件(OnInit 方法)

加载视图状态

在此阶段结束时,就会自动填充控件的 ViewState 属性,详见维护控件中的状态中的介绍。控件可以重写 LoadViewState 方法的默认实现,以自定义状态还原。

LoadViewState 方法

处理回发数据

处理传入窗体数据,并相应地更新属性。请参见处理回发数据

注意 只有处理回发数据的控件参与此阶段。

LoadPostData 方法

(如果已实现 IPostBackDataHandler)

加载

执行所有请求共有的操作,如设置数据库查询。此时,树中的服务器控件已创建并初始化、状态已还原并且窗体控件反映了客户端的数据。请参见处理继承的事件

Load 事件

(OnLoad 方法)

发送回发更改通知

引发更改事件以响应当前和以前回发之间的状态更改。请参见处理回发数据

注意 只有引发回发更改事件的控件参与此阶段。

RaisePostDataChangedEvent 方法

(如果已实现 IPostBackDataHandler)

处理回发事件

处理引起回发的客户端事件,并在服务器上引发相应的事件。请参见捕获回发事件

注意 只有处理回发事件的控件参与此阶段。

RaisePostBackEvent 方法

(如果已实现 IPostBackEventHandler)

预呈现

在呈现输出之前执行任何更新。可以保存在预呈现阶段对控件状态所做的更改,而在呈现阶段所对的更改则会丢失。请参见处理继承的事件

PreRender 事件

(OnPreRender 方法)

保存状态

在此阶段后,自动将控件的 ViewState 属性保持到字符串对象中。此字符串对象被发送到客户端并作为隐藏变量发送回来。为了提高效率,控件可以重写 SaveViewState 方法以修改 ViewState 属性。请参见维护控件中的状态

SaveViewState 方法

呈现

生成呈现给客户端的输出。请参见呈现 ASP.NET 服务器控件

Render 方法

处置

执行销毁控件前的所有最终清理操作。在此阶段必须释放对昂贵资源的引用,如数据库链接。请参见 ASP.NET 服务器控件中的方法

Dispose 方法

卸载

执行销毁控件前的所有最终清理操作。控件作者通常在 Dispose 中执行清除,而不处理此事件。

UnLoad 事件(On UnLoad 方法)

注意 要重写 EventName 事件,请重写 OnEventName 方法(并调用 base.OnEventName)。

第三列中的方法和事件是从 System.Web.UI.Control 继承的,但以下几个除外:LoadPostData 和 RaisePostDataChangedEvent 是 IPostBackDataHandler 接口的方法,而 RaisePostBackEvent 属于 IPostBackEventHandler 接口。如果控件参与回发数据处理,则必须实现 IPostBackDataHandler。如果控件收到回发事件,则必须实现 IPostBackEventHandler。

表中没有列出 CreateChildControls 方法,这是由于每当 ASP.NET 页框架需要创建控件树时就会调用该方法,且该方法调用并不限于控件生命周期的特定阶段。例如,可以在加载页时、在绑定数据过程中或者在呈现过程中调用 CreateChildControls。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有