本文主要给人人引见了关于Asp.NET页面事宜加载先后递次的相干内容,分享出来供人人参考进修,下面话不多说,来一同看看细致的引见:
ASP.NET 母版页和内容页中的事宜
我们晓得母版页和内容页都能够包括控件的事宜处置惩罚递次。关于控件而言内容页中的控件在内容页中激发事宜,母版页中的控件在母版页中激发事宜。控件事宜不会从内容页发送到母版页,也不能在内容页中处置惩罚来自母版页控件的事宜,它们只会在自身事宜内部举行处置惩罚。
下面是母版页(Master)与内容页(ContentPage)兼并后事宜的发作递次:
Master页面控件 Init 事宜。 ContentPage页面控件 Init 事宜。 Master页 Init 事宜。 ContentPage页 Init 事宜。 ContentPage页 Load 事宜。 Master页 Load 事宜。 ContentPage页面控件 Load 事宜。 ContentPage页面 PreRender 事宜。 Master页面 PreRender 事宜。 Master页面控件 PreRender 事宜。 ContentPage页面控件 PreRender 事宜。
母版页和内容页中的事宜递次关于页面开发人员并不主要。然则,假如建立的事宜处置惩罚递次取决于某些事宜的可用性,相识母版页和内容页中的事宜递次很有协助。
Asp.Net中页面事宜加载的先后递次
1、零丁一个Page 实行中将根据以下递次激活事宜:
Page.PreInit Page.Init Page.InitComplite Page.PreLoad Page.Load Page.LoadComplete Page.PreRender Page.PreRenderComplete
2、假如页面从另一个页面继续,如BasePage:System.Web.UI.Page
,在BasePage中添加了一下考证功用,如是不是登录、是不是具有权限等方面的搜检,而别的页面从BasePage继续,则BasePage和终究Page的事宜激活递次是:
BasePage.PreInit Page.PreInit BasePage.Init Page.Init BasePage.InitComplite Page.InitComplite BasePage.PreLoad Page.PreLoad BasePage.Load Page.Load BasePage.LoadComplete Page.LoadComplete BasePage.PreRender Page.PreRender BasePage.PreRenderComplete Page.PreRenderComplete
3、假如运用了MasterPage,则MasterPage中的事宜和ContentPage中的事宜根据下面递次激活:
ContentPage.PreInit Master.Init ContentPage.Init ContentPage.InitComplite ContentPage.PreLoad ContentPage.Load Master.Load ContentPage.LoadComplete ContentPage.PreRender Master.PreRender ContentPage.PreRenderComplete
须要注重的是Master内里是没有PreInit事宜。
4、假如ContentPage继续BasePage,那末,各事宜的实行递次将变成:
BasePage.PreInit ContentPage.PreInit Master.Init BasePage.Init ContentPage.Init BasePage.InitComplite ContentPage.InitComplite BasePage.PreLoad ContentPage.PreLoad BasePage.Load ContentPage.Load Master.Load BasePage.LoadComplete ContentPage.LoadComplete BasePage.PreRender ContentPage.PreRender Master.PreRender BasePage.PreRenderComplete ContentPage.PreRenderComplete
只须要记着:先加载继续页,再加载自身,假如继续页有继续则先加载继续页的继续。
事宜处置惩罚器称号 | 发作时间 |
Page_Init | 在Web窗体的视图状况加载服务器控件并对其初始化。 这是窗体生命周期的第一步 |
Page_Load | 在Page对象上载入服务器控件。因为此时视图状况信息是能够运用的,因而载这里能够用代码来转变空间的设置或许载页面上显现文本。 |
Page_PreRender | 应用递次将要显现Page |
Page_Unload |
页面从内存中卸载 |
Page_Error |
发作未处置惩罚的非常 |
Page_AbortTransaction |
事务处置惩罚被停止 |
Page_CommitTransaction |
事务处置惩罚被接收 |
Page_DataBinding |
把页面上的服务器空间和数据源绑定载一同 |
Page_Disposed |
Page对象从内存中释放掉。这是Page对象生命周期中的末了一个事宜 |
Init,Load,PreRender事宜实行递次:
1)控件的Init事宜
2)控件地点页面的Init事宜
3)控件地点页面的Load事宜
4)控件的Load事宜
5)控件地点页面的PreRender事宜
6)控件的PreRender事宜
个人研讨的一些心得体会:(下面的两点能够经由过程自建页面并重写相干事宜举行考证)
1.Init事宜从最内里的控件(比方用户控件)向最表面的控件(页面)激发,Load及PreRender等其他事宜从最表面的控件向最内里的控件激发。
2.控件之间雷同事宜的实行递次依控件在页面的位置按从左到右,从上到下的先后递次实行。
注重:
1. 牢记用户控件也被视为页面中的一个控件;
2. 把用户控件作为零丁的一个特别页面来看,它自身及其所包括的控件一样恪守雷同的规律。
3. 假如客户端递次(如JavaScript)中会用到客户端body对像的onload事宜,注重这个客户端事宜是末了实行,即在服务器端一切事宜实行完后才实行。
4. Master、用户自定义控件内里是没有PreInit、OnComplete事宜.Master自身就是一个用户控件usercontrol,usercontrol继续TemplateControl,TemplateControl继续Control,让我们看看Control内里可重写的事宜(部份截图),也能够检察此官方文档:https://referencesource.microsoft.com/#System.Web/UI/Control.cs,87dbac93d9749fa2。
以上就是Asp.NET页面事宜加载的递次是什么样的的细致内容,更多请关注ki4网别的相干文章!