http://xiangai.taobao.com
http://shop148612228.taobao.com

asp.net 控件生命周期 内的执行步骤

 

asp.net控件在生命周期中将执行一系列措置步骤,这些步骤包括:   实例化(Instantiate) 控件被页面或另一个控件经由调用它的结构器所实例化。这个步骤之后所列出的阶段,仅当控件介入控件树中才会发生发火。

初始化(Initialize) 初始化在传入 Web 央求生命周期内所需的设置。在此阶段,控件树中的页面和悉数控件经由默许体式格局来调用OnInit办法。开辟人员能够经由重载OnInit办法,为控件供应初始化逻辑。在其生命周期的这个时分,控件能够安全地接见其置于Controls汇合中的子控件,然则它不能接见控件层次中的父控件或其他层次更高的控件(如页面)

劈头跟踪视图状况(Begin Tracking View State) 这个阶段发生发火在初始化阶段的末尾。在此阶段页面主动调用TrackViewState办法。TrackViewState办法保证在此阶段之后,运用ViewState字典属性而发生的改变保管在控件视图状况中。在大多半状况下,Control基类供应的TrackViewState办法完成曾经足够了,只需在控件定义了复杂属性时,才必需重载TrackViewState办法。

加载视图状况(仅用于回传过程)(Load View State (postback only)) 这个阶段发生发火在回传时,而不是初始央求过程中,在此阶段终了时,就会主动填充控件的 ViewState 属性控件能够重写 LoadViewState 办法的默许完成,以自定义状况恢复。

加载回传数据(仅用于回传过程,为可选项)(Load Postback Data(postback only, optional)) 只需在控件经由完成IPostBackDataHandler接口介入了回传数据措置时,这个阶段才发生发火在回传中。TextBox控件就是一个例子。在这个阶段中,控件必需从已发送的表单数据中,经由完成IPostBackDataHandler借口的LoadPostData办法更新其状况。

加载(Load) 直到此阶段劈头,控件树中的一切控件都已被初始化,并恢复到它们在先前周期最后的状况。OnLoad办法会执行一切央求共有的操作,如设置数据库查询。此时,树中的效劳器控件已创建并初始化、状况已恢复而且窗体控件反映了客户端的数据。假如需求完成仅在页面初始央求中执行的逻辑,那么完成该逻辑时,应该搜检页面的IsPostBack属性

激发修正工作(仅用于回传过程,为可选项)(Raise Changed Events(postback only, optional)) 只需在控件经由完成IPostBackDataHandler接口介入了回传数据措置时,这个阶段才发生发火在回传中。在此阶段中,控件经由激发工作(如TextBox的TextChanged工作)作为一种旗子灯号-----其状况因为回传而改动(激发更改工作以响该当前和以前回发之间的状况更改)。为了介入此阶段,控件必需完成IPostBackDataHandler接口的RaisePostDataChangedEvent办法。

激发还传工作(仅用于回传过程,为可选项)(Raise Postback Events(postback only, optional)) 只需在控件经由完成IPostBackEventHandler接口介入了回传数据措置时,这个阶段才发生发火在回传中。在此阶段能够经由完成IPostBackEventHandler接口的RaisePostBackEvent办法来完成逻辑,以便把客户端工作映射到效劳器端工作。

预生成(PreRender) 在此阶段中,应该经由重载OnPreRender办法,执行在生成控件之前所需求的任何工作。在生成输出之前执行任何更新,能够保管在预生成阶段对控件状况所做的更改,而在生成阶段所对应的更改则会损失。

保管视图状况(Save View State) 假如控件不维持状况,或者它为保管其一切状况信息而运用ViewState字典,那么不用在此阶段时代完成任何附加逻辑。在此阶段时代,页面框架会主动保管ViewState字典。假如需求自定义状况治理,必需经由重载SaveViewState办法来完成自定义状况恢复,这种办法只被EnableViewState属性为true的控件所调用。在此阶段往后任何控件的改动都不会保管在控件的视图状况中。   生成(Render) 经由这种办法,控件在输出流上经由重载Control的Render办法或WebControl类的rendering办法中的一种,来写标志文本。

卸载(Unload) 在此阶段中,页面经由完成Page_Unload办法,来执行肃清工作。作为控件开辟者,应该重载Dispose办法来执行肃清。

释放(Dispose) 在此阶段,应该重载Dispose办法来释放控件所占的悉数资本。

posted @ 2011-12-21 17:41  万事俱备就差个程序员  阅读(239)  评论(0编辑  收藏  举报

http://xiangai.taobao.com
http://shop148612228.taobao.com
如果您觉得对您有帮助.领个红包吧.谢谢.
支付宝红包
微信打赏 支付宝打赏