全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:15617636856

郑州网站建设

当前位置: 首页 > 新闻资讯>>父类和子类间OnLoad,OnInit,Load 事件,Init事件的执行先后

父类和子类间OnLoad,OnInit,Load 事件,Init事件的执行先后

作者:郑州网络公司发布时间:2023-09-17 02:59:18查看次数:来源:网络

主要就是父类和子类间OnLoad,OnInit,Load 事件,Init事件的执行先后问题。
 
一个页面(子类)的Oninit方法最先启动执行,而后递归执行父类中Oninit方法,父类Oninit方法中添加Init事件,执行Page_Init方法,后再返回父类Oninit方法执行完毕,最后返回子类Oninit方法执行完毕,再执行子类Onload方法,而后递归执行父类中Onload方法,父类Onload方法中添加Load事件,执行Page_Load方法,后再返回父类Onload方法执行完毕,最后返回子类Oninit方法执行完毕,这样才执行完了。
 
如下父类:
 
public class PageBase:System.Web.UI.Page { protected override void OnLoad(EventArgs e) { string ss = "1";
 
base.OnLoad(e); } protected override void OnInit(EventArgs e) { base.OnInit(e); }
 
}
 
子类:
 
public partial class _Default :PageBase { protected void Page_Load(object sender, EventArgs e) {
 
} protected void Page_Init(object sender, EventArgs e) { // Do any related intialization work. }
 
protected override void OnInit(EventArgs e) {
base.OnInit(e); }
 
protected override void OnLoad(EventArgs e) { base.OnLoad(e); } }
 
整个过程是:
 
最先执行子类_Default 的OnInit的方法,这里调用父类PageBase的OnInit方法,在PageBase的OnInit方法内注册Init事件,执行Page_Init方法,而后返回至父类PageBase的OnInit方法终执行完毕,返回子类Oninit方法执行完毕;接着调用子类_Default 的Onload的方法,这里调用父类PageBase的Onload方法,在PageBase的Onload方法内注册Load事件,执行Page_Load方法,而后返回至父类PageBase的Onload方法终执行完毕,返回子类Onload方法执行完毕。
 
具体页面的执行过程还有很多工作,怎么做的,我摘抄别人的文章,不再写啦,以方便有需要的和我自己。O(∩_∩)O~
 
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
 
public partial class _Default : Page { protected void Page_Load(object sender, EventArgs e) {
 
}
 
#region OnPreInit 第一步 protected override void OnPreInit(EventArgs e) { //检查 IsPostBack 属性来确定是不是第一次处理该页。
 
//创建或重新创建动态控件。
 
//动态设置主控页。
 
//动态设置 Theme 属性。
 
//读取或设置配置文件属性值。
 
//注意 //如果请求是回发请求,则控件的值尚未从视图状态还原。如果在此阶段设置控件属性,则其值可能会在下一事件中被重写。
 
base.OnPreInit(e); } #endregion
 
#region OnInit 第二步 protected override void OnInit(EventArgs e) { //在所有控件都已初始化且已应用所有外观设置后引发。使用该事件来读取或初始化控件属性。 base.OnInit(e); } #endregion
 
#region OnInitComplete 第三步 protected override void OnInitComplete(EventArgs e) { //由 Page 对象引发。使用该事件来处理要求先完成所有初始化工作的任务。
 
base.OnInitComplete(e); } #endregion
 
#region PreLoad 第四步 protected override void OnPreLoad(EventArgs e) { //如果需要在 Load 事件之前对页或控件执行处理,请使用该事件。
 
//在 Page 引发该事件后,它会为自身和所有控件加载视图状态,然后会处理 Request 实例包括的任何回发数据。
 
base.OnPreLoad(e); } #endregion
 
#region OnLoad 第五步 protected override void OnLoad(EventArgs e) { //Page 在 Page 上调用 OnLoad 事件方法,然后以递归方式对每个子控件执行相同操作,如此循环往复,直到加载完本页和所有控件为止。 //使用 OnLoad 事件方法来设置控件中的属性并建立数据库连接。
 
base.OnLoad(e); } #endregion

站内文章:均为188bet博彩体育app下载方式 各部门原创内容如需转载请著名本文网站链接://www.mcissock.com/new/28183.html未经允许转载要受法律责任,如需转载请联系269247937@qq.com


[父类和子类间OnLoad,OnInit,Load 事件,Init事件的执行先后]

本文链接://www.mcissock.com/new/28183.html
tags:郑州网站建设郑州网站制作郑州网站设计郑州建站公司郑州网站优化郑州做网站郑州小程序开发郑州网络公司
网页是否收录:
返回目录 在线咨询

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。

  • 返回顶部
  • 15617636856
  • QQ在线
  • 微信二维码
0
Baidu
map