首先Page_Load是一个方法,OnLoad也是一个方法。

OnLoad是Page类继承自System.Web.UI.TemplateControl,而System.Web.UI.TemplateControl又继承自System.Web.UI.Control。所以严格说来OnLoad是属于System.Web.UI.Control的一个方法。

同样Page也有一个Load事件也是相同的继承自System.Web.UI.Control。

这里要引入一个@ Page指令中的 AutoEventWireup。当AutoEventWireup=true的时候,页面会与某些特殊的事件方法绑定,自动识别这些具有特定名称的事件。这些特定名称包括:Page_Init, Page_Load, Page_DataBind, Page_PreRender和Page_Unload等。

当true,asp.net不需要显示的来绑定事件处理程序,它会在运行时自动的根据他们的方法名和签名绑定事件,对每一个事件,ASP.NET会根据Page_eventname这种模式去搜寻方法,如果没有找到带此签名的事件处理程序,则 ASP.NET 将检查没有参数的重载。当时false的时候,则必须显示绑定事件方法,比如,你有一个Page_Load方法,只有当你这样写代码的时候,才会触发事件方法:Page.Load += Page_Load;在这种情况下,方法名称不必遵循某一模式。考虑性能的时候,则不要将 AutoEventWireup 设置为 true。 在启用自动事件连接时,ASP.NET 必须进行 15 到 30 次尝试,使将事件与方法匹配。

Page的Load事件,准确的说是System.Web.UI.Control的Load事件绑定的是System.Web.UI.Control的OnLoad方法。因此如果在Page页面里重写了OnLoad方法,则此时虽然是用的AutoEventWireup=true,但Page_Load方法也不会被执行。

因此,如果比较考虑性能,建议用override Oneventname方法的方式来实现页面的事件加载。

System.Web.UI.Control类中有如下几个方法可供override

protected internal virtual void OnInit(EventArgs e);

protected internal virtual void OnLoad(EventArgs e);

protected internal virtual void OnPreRender(EventArgs e);

protected internal virtual void OnUnload(EventArgs e);

可以如下覆盖

protected override void OnLoad(EventArgs e)

{

Response.Write("OnLoad<br>");

}

总结一下Page_Load和OnLoad相关推荐

  1. [随记][asp.net基础]Page_Load和OnLoad

    标题:[随记][asp.net基础]Page_Load和OnLoad 一.前言 东西好久不用.不想,就会忘,所以没办法,只好记下来. 二.正文 aspx页面加载的时候会自动执行Page_Load,也会 ...

  2. ASP.NET WebForm中用async/await实现异步

    1. 在.aspx中添加异步标记 <%@ Page Language="C#" Async="true"%> 2. 在.aspx.cs或者.ascx ...

  3. ASP.NET Page执行顺序如:OnPreInit()、OnInit()

    当页面进行回发时,如点击按钮,以上事件都会重新执行一次,这时的执行顺序为: 1. OnPreInit 2. OnInit 3. OnInitComplete 4. OnPreLoad 5. Page_ ...

  4. 一起谈.NET技术,OnLoad与Page_Load的差异分析

    记得最开始学习ASP.NET的时候,我们就被告知:Page_Load方法里面可以写页面加载的代码. 于是我们就懵懵懂懂写了很长时间的Page_Load方法.最近回过头思考,为什么一个普通的方法,能被自 ...

  5. Page_Load基类,重写OnLoad

    protected override void OnLoad(EventArgs e){userid = PublicFun.GetSessionValue(HttpContext.Current.S ...

  6. Page_Load Page_Init方法使用原理(转)

    网页的生命周期列表: PreInit (2.0) ->初始化Theme,应用MasterPage和控件Skin ->Init ->InitComplete (2.0) ->If ...

  7. OnInit和OnLoad

    主要就是父类和子类间OnLoad,OnInit,Load 事件,Init事件的执行先后问题. 一个页面(子类)的Oninit方法最先启动执行,而后递归执行父类中Oninit方法,父类Oninit方法中 ...

  8. $(function(){})、$(document).ready(function(){})....../ ready和onload的区别

    1.window.onload 当一个文档完全下载到浏览器中时,会触发 window.onload 事件. 这意味着页面上的全部元素对 javascript 而言都是可以访问的,这种情况对编写功能性的 ...

  9. CRM:把 isv.config.xml 按钮事件移动到 entity.onload()

    大家都知道在ISV.CONFIG里可以添加按钮,然后添加按钮事件,比如下面: <Entities>   <Entity name="account">    ...

最新文章

  1. 深入理解Kinect for Windows开发
  2. C#中System.ServiceProgress报错
  3. python算法和数据结构_Python中的数据结构和算法
  4. 前端学习(492):script之标签得位置
  5. python函数的继承_Python 继承
  6. 延时加载 lazyload使用技巧
  7. python生成器_Python生成器
  8. 问题三十二:怎么用ray tracing画多边形(polygon, triangle)
  9. RHCS集群 切换时defunct僵尸进程解决方案
  10. 在线考试系统设计+源码
  11. i3wm i3status状态栏实时显示网速
  12. 数模算法:排队论模型
  13. moxa串口服务器网页版用户名密码,moxa串口服务器设置密码
  14. Dialog顶部空白点击后无法关闭Dialog
  15. RouterPassView – 路由密码查看器
  16. V4L2文档翻译(十一)
  17. 2021年安全员-B证(广西省-2021版)考试技巧及安全员-B证(广西省-2021版)
  18. 论坛数据库设计初步设计
  19. text-align 和 align的区别
  20. STEP标准执行方法-ISO-10303-21

热门文章

  1. 《精解Windows8》——2.6 Windows应用商店
  2. 《自己动手写Docker》书摘之三: Linux UnionFS
  3. 你确实应该学习并使用的 10 个 C# 特性
  4. Linux里find和grep命令
  5. 对冒泡和二分法,特别是二分法有了更深的理解
  6. AppStore 提供的App信息查询的WebService
  7. 新员工安全生产知识学习读本
  8. Jquery属性选择器(同时匹配多个条件,与或非)(附样例)
  9. 使用php分页类实现简单分类
  10. Windows 2003 AD升级至Windows 2012 AD之DHCP服务器迁移