zoukankan      html  css  js  c++  java
  • asp.net 2.0页面生命周期

    网页的生命周期列表:

      PreInit (2.0)
    ->初始化Theme,应用MasterPage和控件Skin
    ->Init
    ->InitComplete (2.0)
    ->If PostBack,创建子控件并加载控件/视图状态
    ->PreLoad (2.0)
    ->Load
    ->If PostBack,则触发服务器端事件
    ->LoadComplete (2.0)
    ->If not PostBack,则创建子控件
    ->PreRender
    ->PreRenderComplete (2.0)
    ->保存控件/视图状态
    ->SaveStateComplete (2.0)
    ->Render
    ->Unload

    需要注意的是上图中标注(2.0)的事件即ASP.NET 2.0中新增的事件都仅仅是Page类中可以使用,并不是像其他事件一样可以在控件中使用。

    ASP.NET 2.0中可以通过启用(默认值为True)AutoEventWireUp为网页事件创建事件处理程序,并使用隐式为事件处理程序注册的方法名。
    以下是VS2005隐式为各个事件添加关联的方法:

    事件                     ->           方法名
    Page.PreInit             ->           Page_PreInit
    Control.Init             ->           Page_Init
    Page.InitComplete        ->           Page_InitComplete
    Page.PreLoad             ->           Page_PreLoad
    Control.Load             ->           Page_Load
    Page.LoadComplete        ->           Page_LoadComplete
    Control.PreRender        ->           Page_PreRender
    Control.DataBinding      ->           Page_DataBind
    Page.PreRenderComplete   ->           Page_PreRenderComplete
    Page.SaveStateComplete   ->           Page_SaveStateComplete
    Control.Unload           ->           Page_Unload
    TemplateControl.Error    ->           Page_Error
    TemplateControl.AbortTransation  ->   Page_AbortTransation
    TemplateControl.AbortTransation  ->   OnTransationAbort
    TemplateControl.CommitTransation ->   Page_CommitTransation
    TemplateControl.CommitTransation ->   OnTransationCommit

    Page基类会在请求的开头阶段调用基类TemplateControl的HookUpAutomaticHandlers方法。该方法遍历上表中所示的方法名,并使用反射在程序员的类中查找具有相同名称和合适特征标的方法。如果找到合适的方法,则创建一个类型合适的委托,并使用该方法初始化它,并将其加入委托列表,该委托在相应事件发生时候将被触发。
    这些事件都是由基类Page的一个虚方法或者Page类从基类Control继承的虚方法触发。所以可以有三种方法注册这些事件:(以Load事件为例)
    1、显式的将一个委托和一个事件关联起来(通常都是在网页的Init处理程序中)
    2、编写一个名为Page_Load的方法,并使其特征标和事件相同
    3、重写Override虚方法Onload
    这个三个方法中重写Override比较快一点点,但是VS2005默认是第二种。

    但是,如果使用 override 关键字重写页的 OnLoad 方法,则必须显式调用基方法。例如,如果在页中重写 OnLoad 方法,则必须调用 base.Load以运行基实现。

    注意,在使用 Page_event 语法创建事件处理程序时,将隐式调用基实现,因此无需在方法中调用它。例如,无论是否创建 Page_Load 方法,始终都会调用页基类的 OnLoad 方法。但是,如果使用 override 关键字(在 Visual Basic 中为 Overrides)重写页的 OnLoad 方法,则必须显式调用基方法。

    参考博客:http://blog.csdn.net/daizhenbest/archive/2008/06/10/2532597.aspx
  • 相关阅读:
    并发与并行
    OpenCV 图像集合操作
    C++ 输出时间
    绘制模型图
    检测图像文件是否损坏
    QImage,Mat ,QByteArray转换
    图像拼接3
    图像拼接2】
    图像拼接 Stitcher
    《将博客搬至CSDN》
  • 原文地址:https://www.cnblogs.com/zqstc/p/1636412.html
Copyright © 2011-2022 走看看