总结一下Page_Load和OnLoad
首先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相关推荐
- [随记][asp.net基础]Page_Load和OnLoad
标题:[随记][asp.net基础]Page_Load和OnLoad 一.前言 东西好久不用.不想,就会忘,所以没办法,只好记下来. 二.正文 aspx页面加载的时候会自动执行Page_Load,也会 ...
- ASP.NET WebForm中用async/await实现异步
1. 在.aspx中添加异步标记 <%@ Page Language="C#" Async="true"%> 2. 在.aspx.cs或者.ascx ...
- ASP.NET Page执行顺序如:OnPreInit()、OnInit()
当页面进行回发时,如点击按钮,以上事件都会重新执行一次,这时的执行顺序为: 1. OnPreInit 2. OnInit 3. OnInitComplete 4. OnPreLoad 5. Page_ ...
- 一起谈.NET技术,OnLoad与Page_Load的差异分析
记得最开始学习ASP.NET的时候,我们就被告知:Page_Load方法里面可以写页面加载的代码. 于是我们就懵懵懂懂写了很长时间的Page_Load方法.最近回过头思考,为什么一个普通的方法,能被自 ...
- Page_Load基类,重写OnLoad
protected override void OnLoad(EventArgs e){userid = PublicFun.GetSessionValue(HttpContext.Current.S ...
- Page_Load Page_Init方法使用原理(转)
网页的生命周期列表: PreInit (2.0) ->初始化Theme,应用MasterPage和控件Skin ->Init ->InitComplete (2.0) ->If ...
- OnInit和OnLoad
主要就是父类和子类间OnLoad,OnInit,Load 事件,Init事件的执行先后问题. 一个页面(子类)的Oninit方法最先启动执行,而后递归执行父类中Oninit方法,父类Oninit方法中 ...
- $(function(){})、$(document).ready(function(){})....../ ready和onload的区别
1.window.onload 当一个文档完全下载到浏览器中时,会触发 window.onload 事件. 这意味着页面上的全部元素对 javascript 而言都是可以访问的,这种情况对编写功能性的 ...
- CRM:把 isv.config.xml 按钮事件移动到 entity.onload()
大家都知道在ISV.CONFIG里可以添加按钮,然后添加按钮事件,比如下面: <Entities> <Entity name="account"> ...
最新文章
- 深入理解Kinect for Windows开发
- C#中System.ServiceProgress报错
- python算法和数据结构_Python中的数据结构和算法
- 前端学习(492):script之标签得位置
- python函数的继承_Python 继承
- 延时加载 lazyload使用技巧
- python生成器_Python生成器
- 问题三十二:怎么用ray tracing画多边形(polygon, triangle)
- RHCS集群 切换时defunct僵尸进程解决方案
- 在线考试系统设计+源码
- i3wm i3status状态栏实时显示网速
- 数模算法:排队论模型
- moxa串口服务器网页版用户名密码,moxa串口服务器设置密码
- Dialog顶部空白点击后无法关闭Dialog
- RouterPassView – 路由密码查看器
- V4L2文档翻译(十一)
- 2021年安全员-B证(广西省-2021版)考试技巧及安全员-B证(广西省-2021版)
- 论坛数据库设计初步设计
- text-align 和 align的区别
- STEP标准执行方法-ISO-10303-21