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默认是第二种。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值