惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
V
Visual Studio Blog
P
Privacy International News Feed
月光博客
月光博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
Lohrmann on Cybersecurity
N
News and Events Feed by Topic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
Webroot Blog
Webroot Blog
T
Threatpost
宝玉的分享
宝玉的分享
The Last Watchdog
The Last Watchdog
小众软件
小众软件
L
LINUX DO - 最新话题
C
Cisco Blogs
T
Troy Hunt's Blog
Schneier on Security
Schneier on Security
酷 壳 – CoolShell
酷 壳 – CoolShell
www.infosecurity-magazine.com
www.infosecurity-magazine.com
雷峰网
雷峰网
G
GRAHAM CLULEY
有赞技术团队
有赞技术团队
Know Your Adversary
Know Your Adversary
博客园 - 叶小钗
罗磊的独立博客
V
V2EX
博客园 - Franky
P
Proofpoint News Feed
SecWiki News
SecWiki News
腾讯CDC
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
Attack and Defense Labs
Attack and Defense Labs
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
PCI Perspectives
PCI Perspectives
V2EX - 技术
V2EX - 技术
Google DeepMind News
Google DeepMind News
Last Week in AI
Last Week in AI
aimingoo的专栏
aimingoo的专栏
Cisco Talos Blog
Cisco Talos Blog
N
News and Events Feed by Topic
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
SegmentFault 最新的问题

博客园 - goodvify

电费查询网_电费网上查询 气候数据订制 天气后报 第二架遥控飞机又飞丢了,囧! 外贸业务可以分为多个工作阶段来管理 也许许多企业管理软件的设计出发点就错了 在Linux下的绘流程图工具yEd 在Flex中用xml做数据源的界面操作的测试 “学而不思则罔,思而不学则殆”在实施工作中的思考 Ubuntu Server安装 准备测试使用Ubuntu的Server版 不使用“DataSourceControl DataSource”的情况下如何分页和排序 [转]利用.NET中的反射机制实现IList到DataTable的转换 [转]PetShop 4架构分析 VS2008 快捷键大全 MySql远程连接的问题 vc7中的ClassWizard [javascript]判断email地址的有效性 Windows Socket API函数解说
ASP.NET2.0网页的生命周期
goodvify · 2008-10-04 · via 博客园 - goodvify

网页的生命周期列表:

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