亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Asp.NET頁(yè)面中事件加載的先后順序詳解

 更新時(shí)間:2020年03月19日 17:14:17   作者:菜鳥葫蘆娃  
這篇文章主要給大家介紹了關(guān)于Asp.NET頁(yè)面中事件加載的先后順序,文中通過(guò)圖文以及示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

本文主要給大家介紹了關(guān)于Asp.NET頁(yè)面事件加載先后順序的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō),來(lái)一起看看詳細(xì)的介紹:

ASP.NET 母版頁(yè)和內(nèi)容頁(yè)中的事件

我們知道母版頁(yè)和內(nèi)容頁(yè)都可以包含控件的事件處理程序。對(duì)于控件而言內(nèi)容頁(yè)中的控件在內(nèi)容頁(yè)中引發(fā)事件,母版頁(yè)中的控件在母版頁(yè)中引發(fā)事件。控件事件不會(huì)從內(nèi)容頁(yè)發(fā)送到母版頁(yè),也不能在內(nèi)容頁(yè)中處理來(lái)自母版頁(yè)控件的事件,它們只會(huì)在自己事件內(nèi)部進(jìn)行處理。

下面是母版頁(yè)(Master)與內(nèi)容頁(yè)(ContentPage)合并后事件的發(fā)生順序:

Master頁(yè)面控件 Init 事件。
ContentPage頁(yè)面控件 Init 事件。
Master頁(yè) Init 事件。
ContentPage頁(yè) Init 事件。
ContentPage頁(yè) Load 事件。
Master頁(yè) Load 事件。
ContentPage頁(yè)面控件 Load 事件。
ContentPage頁(yè)面 PreRender 事件。
Master頁(yè)面 PreRender 事件。
Master頁(yè)面控件 PreRender 事件。
ContentPage頁(yè)面控件 PreRender 事件。

母版頁(yè)和內(nèi)容頁(yè)中的事件順序?qū)τ陧?yè)面開發(fā)人員并不重要。但是,如果創(chuàng)建的事件處理程序取決于某些事件的可用性,了解母版頁(yè)和內(nèi)容頁(yè)中的事件順序很有幫助。

Asp.Net中頁(yè)面事件加載的先后順序

1、單獨(dú)一個(gè)Page 執(zhí)行中將按照如下順序激活事件:

Page.PreInit
Page.Init
Page.InitComplite
Page.PreLoad
Page.Load
Page.LoadComplete
Page.PreRender
Page.PreRenderComplete

2、如果頁(yè)面從另一個(gè)頁(yè)面繼承,如BasePage:System.Web.UI.Page ,在BasePage中添加了一下驗(yàn)證功能,如是否登錄、是否擁有權(quán)限等方面的檢查,而其它頁(yè)面從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里面是沒(méi)有PreInit事件。

4、如果ContentPage繼承BasePage,那么,各事件的執(zhí)行順序?qū)⒆兂桑?/p>

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

只需要記住:先加載繼承頁(yè),再加載自己,如果繼承頁(yè)有繼承則先加載繼承頁(yè)的繼承。

事件處理器名稱 發(fā)生時(shí)間
Page_Init 在Web窗體的視圖狀態(tài)加載服務(wù)器控件并對(duì)其初始化。 這是窗體生命周期的第一步
Page_Load 在Page對(duì)象上載入服務(wù)器控件。由于此時(shí)視圖狀態(tài)信息是可以使用的,因此載這里可以用代碼來(lái)改變空間的設(shè)置或者載頁(yè)面上顯示文本。
Page_PreRender 應(yīng)用程序?qū)⒁尸F(xiàn)Page
Page_Unload 頁(yè)面從內(nèi)存中卸載
Page_Error 發(fā)生未處理的異常
Page_AbortTransaction 事務(wù)處理被終止
Page_CommitTransaction 事務(wù)處理被接受
Page_DataBinding 把頁(yè)面上的服務(wù)器空間和數(shù)據(jù)源綁定載一起
Page_Disposed Page對(duì)象從內(nèi)存中釋放掉。這是Page對(duì)象生命周期中的最后一個(gè)事件

Init,Load,PreRender事件執(zhí)行順序:

      1)控件的Init事件

      2)控件所在頁(yè)面的Init事件

      3)控件所在頁(yè)面的Load事件

      4)控件的Load事件

      5)控件所在頁(yè)面的PreRender事件

      6)控件的PreRender事件

個(gè)人研究的一些心得體會(huì):(下面的兩點(diǎn)可以通過(guò)自建頁(yè)面并重寫相關(guān)事件進(jìn)行驗(yàn)證)

1.Init事件從最里面的控件(例如用戶控件)向最外面的控件(頁(yè)面)引發(fā),Load及PreRender等其他事件從最外面的控件向最里面的控件引發(fā)。

2.控件之間相同事件的執(zhí)行順序依控件在頁(yè)面的位置按從左到右,從上到下的先后順序執(zhí)行。

注意:

      1. 切記用戶控件也被視為頁(yè)面中的一個(gè)控件;

      2. 把用戶控件作為單獨(dú)的一個(gè)特殊頁(yè)面來(lái)看,它本身及其所包含的控件同樣遵守相同的規(guī)律。

      3. 如果客戶端程序(如JavaScript)中會(huì)用到客戶端body對(duì)像的onload事件,注意這個(gè)客戶端事件是最后執(zhí)行,即在服務(wù)器端所有事件執(zhí)行完后才執(zhí)行。

      4. Master、用戶自定義控件里面是沒(méi)有PreInit、OnComplete事件.Master本身就是一個(gè)用戶控件usercontrol,usercontrol繼承TemplateControl,TemplateControl繼承Control,讓我們看看Control里面可重寫的事件(部分截圖),也可以查看此官方文檔:https://referencesource.microsoft.com/#System.Web/UI/Control.cs,87dbac93d9749fa2。


下面是來(lái)自微軟的一篇官方文章:

https://msdn.microsoft.com/zh-cn/library/aa479007.aspx

可仔細(xì)看看這篇文章講的很好。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持

相關(guān)文章

  • asp.net下UTF-7轉(zhuǎn)GB2312編碼的代碼(中文)

    asp.net下UTF-7轉(zhuǎn)GB2312編碼的代碼(中文)

    UTF-7轉(zhuǎn)換GB2312編碼的方法
    2010-07-07
  • 在后臺(tái)cs中調(diào)用js中示例

    在后臺(tái)cs中調(diào)用js中示例

    cs中調(diào)用js中的方法有很多,不過(guò)比較使用的就那么幾個(gè),下面為大家介紹下ScriptManager.RegisterStartupScript方法的使用
    2013-10-10
  • .NET MVC中ViewData,ViewBag和TempData的區(qū)別淺析

    .NET MVC中ViewData,ViewBag和TempData的區(qū)別淺析

    這篇文章主要介紹了.NET MVC中ViewData,ViewBag和TempData的區(qū)別,分析了ViewData,ViewBag和TempData在賦值、功能特性等方面的區(qū)別于用法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • 詳解.net core日記記錄

    詳解.net core日記記錄

    這篇文章主要介紹了.net core的日記記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • ASP.Net頁(yè)面間變量值傳遞的方法

    ASP.Net頁(yè)面間變量值傳遞的方法

    頁(yè)面?zhèn)髦凳菍W(xué)習(xí)asp.net初期都會(huì)面臨的一個(gè)問(wèn)題,這篇文章主要介紹了ASP.Net頁(yè)面間變量值傳遞的方法,詳細(xì)的介紹了幾種方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-11-11
  • .NET全局靜態(tài)可訪問(wèn)IServiceProvider的過(guò)程詳解(支持Blazor)

    .NET全局靜態(tài)可訪問(wèn)IServiceProvider的過(guò)程詳解(支持Blazor)

    為解決在靜態(tài)方法中訪問(wèn)依賴注入(DI)容器的問(wèn)題,提出了通過(guò)DependencyInjection.StaticAccessor包實(shí)現(xiàn)靜態(tài)訪問(wèn),這一方法特別適用于需要在靜態(tài)方法中獲取范圍內(nèi)(Scoped)服務(wù)的場(chǎng)景,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • ASP.Net頁(yè)尾中添加JavaScript的最佳方法實(shí)戰(zhàn)分享

    ASP.Net頁(yè)尾中添加JavaScript的最佳方法實(shí)戰(zhàn)分享

    將JavaScript腳本或庫(kù)添加到asp.net頁(yè)的末尾方法有很多,究竟哪一個(gè)最好使呢有利于日后的維護(hù)啊,是個(gè)疑點(diǎn)啊,本文的出現(xiàn)將幫你解決所有的困惑,感興趣的你可不要錯(cuò)過(guò)了哈
    2013-02-02
  • .NET+Sqlite支持加密的操作方法

    .NET+Sqlite支持加密的操作方法

    這篇文章主要介紹了.NET+Sqlite如何支持加密,如果想支持登錄加密,需要另外的擴(kuò)展SQLite?加密擴(kuò)展(SQLite?Encryption?Extension,),具有讀取/寫入?AES?加密數(shù)據(jù)庫(kù)的附加功能,需要的朋友可以參考下
    2021-12-12
  • 淺析ASP.NET生成隨機(jī)密碼函數(shù)

    淺析ASP.NET生成隨機(jī)密碼函數(shù)

    在開發(fā)需要用戶注冊(cè)后才能使用提供的各項(xiàng)功能的應(yīng)用程序時(shí),在新用戶提交注冊(cè)信息后,較常見的做法是由程序生成隨機(jī)密碼,然后發(fā)送密碼到用戶注冊(cè)時(shí)填寫的電子信箱,用戶再用收到的密碼來(lái)激活其帳戶。
    2009-11-11
  • ASP.NET中的幾種彈出框提示基本實(shí)現(xiàn)方法

    ASP.NET中的幾種彈出框提示基本實(shí)現(xiàn)方法

    NET程序的開發(fā)過(guò)程中,常常需要和用戶進(jìn)行信息交互,對(duì)話框的出現(xiàn)將解決了這些問(wèn)題,下面是本人對(duì)常用對(duì)話框使用的小結(jié),希望對(duì)大家有所幫助
    2013-03-03

最新評(píng)論