最近搞用户验证时,出了个问题,查阅资料解决后,整理了一下。第一篇blog 主要就是父类和子类间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 base.OnLoad(e); 子类: public partial class _Default :PageBase } protected override void OnInit(EventArgs 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; public partial class _Default : Page } #region OnPreInit 第一步 //创建或重新创建动态控件。 //动态设置主控页。 //动态设置 Theme 属性。 //读取或设置配置文件属性值。 //注意 base.OnPreInit(e); #region OnInit 第二步 #region OnInitComplete 第三步 base.OnInitComplete(e); #region PreLoad 第四步 //在 Page 引发该事件后,它会为自身和所有控件加载视图状态,然后会处理 Request 实例包括的任何回发数据。 base.OnPreLoad(e); #region OnLoad 第五步 base.OnLoad(e); |
asp.net页面事件执行过程
最新推荐文章于 2018-03-02 10:29:36 发布
asp.net页面事件执行过程
2010-01-17 17:34