• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Asp.NetServerControl的生命周期

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Asp.Net 服务器控件的生命周期


实例化(Instantiate)
控件被页面或另一个控件通过调用它的构造器所实例化.
这个步骤之后所列出的阶段,仅当控件假如控件树中才会发生。


初始化(Initialize)
初始化在传入Web请求生命周期内所需的设置。在此阶段,控件树中的页面和全部控件通过默认方式来调用OnInit Method.
Writer Code时可以通过override OnInit Method ,为控件提供初始化逻辑。在其生命周期的这个时候,控件能够安全的访问置于Controls集合中的子控件,但是它不能访问控件层次中的父控件或其他层次更高的控件

开始跟踪视图状态(Begin Tracking View State)
这个极端发生在初始化阶段的末尾。
在此阶段页面自动调用trackViewState Method.
TrackViewState方法保证在此阶段之后,
使用ViewState字典属性而产生的变化保存在控件视图状态中。
在大多数情况下,Control基类提供的TrackViewState Method实现已经足够了,
只有在控件顶一复杂的属性时,才必须重载TrackViewState Method


加载(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方法来释放控件所占的全部资源。

 

先简单的说到这里吧,以后这个要作为一个专题来让大家一起热身的,(*^__^*) 嘻嘻!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
asp.net core配置swagger发布时间:2022-07-10
下一篇:
ASP.NET中常用的17种正则表达式发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap