asp.net C#母版页和内容页事件排版加载顺序生命周期

关于ASP页面Page_Load发生在事件之前而导致的问题已经喜闻乐见,对于问题的解释也很全面,但是如何解决问题则较少有人说明,我就再

简单说明一下解决方案。以下是内容页和母版页(如果有)的事件发生顺序:

ContentPage.PreInit

Master.Init

ContentPage.Init

ContentPage.InitComplite

ContentPage.PreLoad

ContentPage.Load

Master.Load

ContentPage.LoadComplete

ContentPage.PreRender

Master.PreRender

ContentPage.PreRenderComplete

就算知道了发生顺序对新手来说也不能怎么样,那么下面重点就来了:

我们都会发现页面后台有个protected void Page_Load(object sender, EventArgs e)方法

通常大家会把页面载入时需要做的处理代码写在里面,但是这个方法发生在click事件之前,就导致了很多小问题

那么有没有方法是发生在事件之后呢?答案是肯定的:

protected void Page_LoadComplete(object sender, EventArgs e)

是不是很简单?但是这个方法仍然发生在母版加载之前,如果弹出对话框会导致母版排版混乱,那么用下面这个就好了

protected void Page_PreRenderComplete(object sender, EventArgs e)

于是关于生命周期的问题都迎刃而解,代码理解起来也流畅多了

以下是页面载入过程中会激活的一些方法执行顺序,需要在页面特定阶段写代码的话可以用上:

protected void Page_Init(object sender, EventArgs e)

protected void Page_Load(object sender, EventArgs e)

各种用户自定义的控件click事件

protected void Page_LoadComplete(object sender, EventArgs e)

protected void Page_PreRender(object sender, EventArgs e)

protected void Page_PreRenderComplete(object sender, EventArgs e)

protected void Page_Unload(object sender, EventArgs e)

protected void Page_Error(object sender, EventArgs e)

protected void Page_AbortTransaction(object sender, EventArgs e)

protected void Page_CommitTransaction(object sender, EventArgs e)

protected void Page_DataBinding(object sender, EventArgs e)

protected void Page_Disposed(object sender, EventArgs e)

以上:D更多问题欢迎QQ交流,176457718

时间: 2024-10-16 05:06:35

asp.net C#母版页和内容页事件排版加载顺序生命周期的相关文章

ASP.NET在母版页或内容页上获取控件ID

原本想给一个button添加一个confirm,不同的分数提示不同的信息(大于80合格,小于80不合格,提示是否提交),最开始用了button.Atribute.Add();但是它每次获取到的是label控件在刷新前的值,后来在网上看到了ViewState[]的使用,但是还是不行,没办法,只能用js: <script> function myconfirm() { if(document.getElementById('lbl').value>=80) {return confirm('

引用asp.net母版页后,母版页和内容页的页面事件执行顺序

如下,经测试得到的执行步骤: 第01步.内容页的 Page_PreInit第02步.母版页的 Page_Init第03步.内容页的 Page_Init第04步.内容页的 Page_InitComplete第05步.内容页的 Page_PreLoad第06步.内容页的 Page_Load第07步.母版页的 Page_Load第08步.母版页或内容页的 按钮点击等回发事件(Master或Content的Button事件不会同时触发)第09步.内容页的 Page_LoadComplete第10步.内容

ASP.NET 母版页和内容页中的事件触发顺序

母版页和内容页触发事件的先后顺序,触发事件的规则一般是初始化事件是从最里边的控件到最外边的控件,其他事件则是从最外边控件到最里边控件. 下面是一个测试: 第一次触发的是母版页的Init事件. 第二次触发的是内容页的Init事件. 第三次触发的是内容页的Load事件 第四次触发的是母版页的Load事件 总结: 母版页与内容页触发事件的顺序: 1.母版页Init事件. 2.内容页Init事件. 3.内容页Load事件 4.母版页Load事件. 5.内容页PreRender事件. 6.母版页PreRe

Asp.Net母版页和内容页运行机制

Asp.Net母版页和内容页运行机制来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=96从上面的讲解中可以看出,单独的母版页是不能被用户所访问的.没有内容页支持,母版页仅仅是一个页面模板,没有更多的实用价值.同样道理,单独的内容页没有母版页的支持,也不能够应用.这两者是不可分割的,只有同时正确创建和使用母版页及内容页,才能发挥它们的强大功能.为了便于读者理解,有必要讲解一下母版页与内容页的运行机制.母版页和内容页的运行过程可以概括为以下5个步骤

ASP.NET 母版页和内容页的加载顺序

Master 模板页Content 内容页如果希望Master页面的数据传给Content页面,请Init如果希望Content页面的数据传给Master页面,请重载Load具体细节不多说了,看下面页面的加载顺序就明白原因(对于使用MasterPage方式做网站的是很有用的)母版页控件 Init 事件内容控件 Init 事件母版页 Init 事件内容页 Init 事件内容页 Load 事件母版页 Load 事件内容控件 Load 事件内容页 PreRender 事件母版页 PreRender 事

C# 问题解决思路--《数组bytes未定义》,ASP.NET页面加载顺序

好久没写博客了,废话不多说,直接说问题. 问题发生情况,首先这个是老项目,然后我是第一次修改.当我解决了各种引用,数据库配置之后等类似的问题,我启动的项目的时候,无任何问题,但是当我点击页面的按钮的时候,就报类型的错误. 因此,我按照我个人的经验,做出排查. 1.首先是代码问题,我根据按钮找到对应的后台事件,然后加上断点,发现根本就不进对应的断点.(说明不是按钮的后台代码的错误) 2.有可能是整个页面的后台代码的其他的错误,因此我搜索了该后台代码  看是否哪里出现了 bytes这个数组,结果没有

JavaScript之jQuery-4 jQuery事件(页面加载后执行、事件处理、事件冒泡、事件对象、模拟操作)

一.jQuery 页面加载后执行 代码执行的时机选择 - $(document).ready()方法和 window.onload事件具有相似的功能,但是在执行时机方面是有区别的 - window.onload 事件是在网页中所有的元素(包括元素的所有关联文件)完全加载到浏览器后才执行 - $(document).ready()方法注册的事件处理程序,在DOM完全加载后就可以调用 - 一般来讲, $(document).ready()的执行要优于window.onload事件 - 需要注意的是,

javascript不依赖JS加载顺序事件对象实现

背景: 在现在WEB开发中,稍复杂一点的页面,都会涉及到多个模块,尤其是类似seajs.LABjs.requireJS等模块工具出来后,前端开发者分模块开发已经慢慢变成一种习惯了,但是多个模块间的常常有各种交集,需要通信.需要互相调用,这时监听者模式便是必不可少的一种设计模式了,在前端表现事件操作.backbone和jquery都有提供了很好的事件处理方式. 但是,真正开发需求的时候我们常常会遇到文件加载顺序跟事件监听与更新不一致的需求,比如说:在一个视频网站里面,有一个视频处理的JS模块和用户

onload 事件、DOMContentLoaded事件、DOM加载顺序

1.onload 事件 定义与语法 onload事件会在页面或者图像加载完成后立即发生. 法:onload="SomeJavaScriptCode“: 参数:SomeJavaScriptCode    描述:必需.规定该事件发生时执行的 JavaScript. 支持该事件的 HTML 标签:<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>