快速业务通道

Page_Load Page_Init方法使用原理

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

网页的生命周期列表:

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

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号