zoukankan      html  css  js  c++  java
  • .NET 控件生命周期

    控件生命周期是按照时间,即控件生成过程的先后顺序,控件在每个阶段完成控件生成特定功能。一般控件的生命周期可以分为十一个阶段。其中Systen.Web.Page划分的更加详细。Page控件是所有控件的容器,Page控件的生成也意味着它里面所有的子控件也已经生成,它的生成过程也是它的子控件生成过程,而且Page还负责管理主题、管理母版页等好多方面。一般说来在Page的PreiInit事件完成设置母版页和主题属性。Page的Init阶段要依次激发子控件的Init事件,初始化子控件,并为子控件命名容器。Page的InitComplete阶段是要使控件具有试图能力。

    1.初始化(对应OnInit方法)

    完成控件初始化,通过ProcessRequest方法遍历它的子控件,使子控件调用它们的OnInit方法,可以重写此方法增强控件功能。在这个阶段还要做的就是打开控件的视图跟踪功能,具体调用TrackViewState方法,这样存储在ViewState对象里面的值在页面回发时刻才能恢复到控件属性中。

    2.加载视图状态(对应LondViewState方法)

    本阶段仅在页面回发时执行(页面未禁用视图状态),主要完成加载视图状态到控件任务,

    3.加载回传数据(对应LoadPostDate方法)

    本阶段仅在页面回发时执行。它是实现接口IPostBackDateHandler的一个方法,要实现数据回传功能必须实现此接口,其中本方法的参数NameValueCollection类型对象装载了客户端提交的数据。另外,在本方法中根据控件旧值和新值的比较返回一个bool类型值,还可以决定是否执行下面的RaisePostDateChangedEvent方法。

    4.装载(对应OnLoad方法)

    页面装载时先执行页面的Page_Load事件,然后执行子控件的此方法。

    5.数据回传事件通知(对应RaisePostDataChangedEvent方法)

    此阶段仅在页面回发时执行,此方法也是实现IPostBackDataHandler接口的一个方法,此方法与上面LoadPostData匹配使用,当LoadPostDate方法返回true时此方法才被调用。

    6.触发回发事件(对应PaisePostBackEvent方法)

    此方法仅在页面回发时执行,主要处理引起客户端事件,成功捕获回发的客户端事件进行服务端的相应的处理。此方法的前提是实现IPostBackEventHandler接口。还可以通过此方法的参数来判断是那个控件触发的回发事件,执行不同的事件处理逻辑。

    7.预呈现(OnPreRender方法)

    此阶段完成控件呈现之前的所需要工作,自定义控件开发一般重写此方法,对控件进行资源注册。

    8.保存视图状态(对应SaveViewState方法)

    与LoadViewState过程相反,此方法是把页面控件视图信息进行存储。此方法在第一次执行的时候执行。一般使用ViewState字典存储状态,在使用时还要用到IStateManager接口。

    9.呈现(对应Render方法)

    此阶段主要将控件标记和字符文本输出到服务器控件输出流中。可以直接写html标记,也可以调用每个控件的RenderControl方法到输出流。

    10.卸载(对应OnUnload方法)

    此阶段执行对控件资源清理工作。

    11释放(对应Dispose方法)

    此阶段释放我们使用的资源。

  • 相关阅读:
    前端- css
    前端- html -总结
    2016.9.15 黑客编程之无限启动
    2016.9.14 JavaScript入门之七面向对象和函数
    2016.9.13 JavaScript入门之六基础函数
    2016.9.1 JavaScript入门之五
    2016.9.9 网络工程师之路由器技术
    2016.8.14 网络工程师之网关协议
    2016.8.27 JavaScript入门之四
    2016.8.22 JavaScript入门之三
  • 原文地址:https://www.cnblogs.com/anranstl/p/5241110.html
Copyright © 2011-2022 走看看