zoukankan      html  css  js  c++  java
  • Page_Load Page_Init方法使用原理(转)

    网页的生命周期列表:

      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默认是第二种。

  • 相关阅读:
    巡风安装笔记
    泛微ecology OA系统某接口存在数据库配置信息泄露漏洞
    Apache Solr Velocity模板远程代码执行复现
    泛微OA系统多版本存在命令执行漏洞
    各种浏览器UA值
    使用python合并excel
    疑难杂症----udf提权无法导出.dll
    疑难杂症----windows7
    Nmap的使用
    Sqlmap的使用
  • 原文地址:https://www.cnblogs.com/zhaobl/p/1227113.html
Copyright © 2011-2022 走看看