网页的生命周期列表:

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

转载于:https://www.cnblogs.com/zhaobl/archive/2008/06/20/1227113.html

Page_Load Page_Init方法使用原理(转)相关推荐

  1. 多线程下ArrayList类线程不安全的解决方法及原理

    多线程下ArrayList类线程不安全的解决方法及原理 参考文章: (1)多线程下ArrayList类线程不安全的解决方法及原理 (2)https://www.cnblogs.com/fangting ...

  2. 可逆加密算法 php,php可逆加密的方法及原理

    本篇文章主要介绍php可逆加密的方法及原理,感兴趣的朋友参考下,希望对大家有所帮助. PHP代码如下:<?php class encryptCalss { var $key=12; functi ...

  3. Vue2.0+vuex+H5实现音乐播放及歌曲切换功能的方法及原理解释

    最近在用mint-ui重写一个vue.js音乐App项目,做到播放器模块,感觉挺有意思,记录一下播放器歌曲播放及歌曲切换功能实现方法及原理. 先上一张运行效果图(歌词尚未抓取.播放进度条及时间尚未开发 ...

  4. [react] render方法的原理你有了解吗?它返回的数据类型是什么?

    [react] render方法的原理你有了解吗?它返回的数据类型是什么? render的第一个参数通过babel转为React.createElement,后者根据参数类型的不同调用不同的内部方法来 ...

  5. VMware虚拟机的三种联网方法及原理

    VMware虚拟机的三种联网方法及原理 博客分类: 操作系统 虚拟机Vmware互联网网络应用网络协议 一.Brigde--桥接  :默认使用VMnet0 1.原理: Bridge  桥"就 ...

  6. ArrayList类contains方法实现原理

    以ArrayList集合示例 思考:contains方法如何执行? public static void main(String [] args){List<String> list=ne ...

  7. ajax连接前后端原理,前后端数据交互方法和原理

    前后端数据交互方法和原理 发布时间:2018-10-28 11:25, 浏览次数:742 对于想要搞web的新手而言,会用html+css+javascript实现一个页面没什么太大的困难,但是想要前 ...

  8. IO流-ReadLine方法的原理 自定义BufferedReader

    package com.yyq; /** readLine 方法的原理* 无论是读一行,获取读取多个字符其实最终都是在硬盘上一个一个的读取,所以最终使用的都是* read方法一次读一个的发法* 缓冲区 ...

  9. Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理

    Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理 1. 重载包括:普通方法的重载和构造方法的重载 1 1.1. 横向重载"和"纵向重载"1 1.2.  ...

最新文章

  1. Java性能调优、LinkedIn容器部署、阿里移动性能调优——首届APMCon精彩演讲先睹为快...
  2. ASP.NET中使用Global.asax文件
  3. Python基础语法学习(字符串)
  4. Matlab 图像处理的一些杂记
  5. 美国计算机生物学要求,美国大学CS专业分支生物信息学和计算生物学专业 Bioinformatics and Computational Biology介绍...
  6. java jar killed_容器中Java 程序OOMKilled原因浅析
  7. boost windows编译
  8. 8 stark组件 展示数据
  9. SAP License:BCS进阶第三篇-BCS合并过程(一)
  10. 数据库无响应(hang住)故障处理思路和方法
  11. ios java 通信_AES加密解密 -- iOS、Java之间的互相通信
  12. 设为首页和加入收藏js
  13. 在C#中实现截获shell程序的输出
  14. 基于TSUNG对MQTT进行压力测试-测试结果
  15. word编辑文字时光标随意跳动问题
  16. php上传文件失败的原因,PHP图片文件上传失败的原因
  17. 软件性能测试参数化数据准备,性能测试之如何准备测试数据
  18. LDAP基础:8:ldap用户密码确认和修改
  19. 什么是大端法和小端法?
  20. java duck的屏幕保护程序

热门文章

  1. Java扑克牌(斗地主发牌)
  2. 【MySql】 BlackHole :黑洞引擎
  3. 解决win2003远程桌面只能最多连接2个用户的问题
  4. 利用DBMS_FILE_TRANSFER传输数据库文件
  5. shell 调用 sqlplus 各种情况示例
  6. 实施工程师或技术支持应该熟悉的技能
  7. 简述区块链(1)- 也许只有这一篇
  8. 让女朋友能懂的网络技术篇之动态代理
  9. 设置计算机的出站和入站规则
  10. 安装ubuntu系统步骤