ASP.NET -- WebForm -- 頁面生命周期事件

来源:https://www.cnblogs.com/ChengWenHao/archive/2018/11/24/AspNetPart9.html
-Advertisement-
Play Games

ASP.NET -- WebForm -- 頁面生命周期事件在頁生命周期的每個階段中,頁將引發可運行您自己的代碼進行處理的事件。 1. PreInit: 使用該事件來執行下列操作: 檢查 IsPostBack 屬性來確定是不是第一次處理該頁。 創建或重新創建動態控制項。 動態設置主控頁。 動態設置 T ...


ASP.NET -- WebForm --  頁面生命周期事件
在頁生命周期的每個階段中,頁將引發可運行您自己的代碼進行處理的事件。
 
1. PreInit: 使用該事件來執行下列操作:
  檢查 IsPostBack 屬性來確定是不是第一次處理該頁。
  創建或重新創建動態控制項。
  動態設置主控頁。
  動態設置 Theme 屬性。
  讀取或設置配置文件屬性值。
 註意: 如果請求是回發請求,則控制項的值尚未從視圖狀態還原。如果在此階段設置控制項屬性,則其值可能會在下一事件中被覆蓋。
 
2. Init
  在所有控制項都已初始化且已應用所有外觀設置後引發。使用該事件來讀取或初始化控制項屬性。
 
3. InitComplete
  由 Page 對象引發。使用該事件來處理要求先完成所有初始化工作的任務。
 
4. PreLoad
  如果需要在 Load 事件之前對頁或控制項執行處理,請使用該事件。
  在 Page 引發該事件後,它會為自身和所有控制項載入視圖狀態,然後會處理 Request 實例包括的任何回發數據。
 
5. Load
  Page 在 Page 上調用 OnLoad 事件方法,然後以遞歸方式對每個子控制項執行相同操作,如此迴圈往複,直到載入完本頁和所有控制項為止。
  使用 OnLoad 事件方法來設置控制項中的屬性並建立資料庫連接。
 
6. 控制項事件
  使用這些事件來處理特定控制項事件,如 Button 控制項的 Click 事件或 TextBox 控制項的 TextChanged 事件。
  註意:在回發請求中,如果頁包含驗證程式控制項,請在執行任何處理之前檢查 Page 和各個驗證控制項的 IsValid 屬性。
 
7. LoadComplete
 對需要載入頁上的所有其他控制項的任務使用該事件。
 
8. PreRender:頁上的每個控制項都會發生 PreRender 事件。使用該事件對頁或其控制項的內容進行最後更改。
  在該事件發生前:
  Page 對象會針對每個控制項和頁調用 EnsureChildControls。
  設置了 DataSourceID 屬性的每個數據綁定控制項會調用 DataBind 方法。
 
9. SaveStateComplete
 在該事件發生前,已針對頁和所有控制項保存了 ViewState。將忽略此時對頁或控制項進行的任何更改。
 使用該事件執行滿足以下條件的任務:要求已經保存了視圖狀態,但未對控制項進行任何更改。
 
10.Render
 這不是事件;在處理的這個階段,Page 對象會在每個控制項上調用此方法。所有 ASP.NET Web 伺服器控制項都有一個用於寫出發送給瀏覽器的控制項標記的 Render 方法。
 如果創建自定義控制項,通常要覆蓋此方法以輸出控制項的標記。不過,如果自定義控制項只合併標準的 ASP.NET Web 伺服器控制項,不合併自定義標記,則不需要覆蓋 Render 方法。
 用戶控制項(.ascx 文件)自動合併呈現,因此不需要在代碼中顯式呈現該控制項。
 
11.Unload
 該事件首先針對每個控制項發生,繼而針對該頁發生。在控制項中,使用該事件對特定控制項執行最後清理,如關閉控制項特定資料庫連接。
 對於頁自身,使用該事件來執行最後清理工作,如:關閉打開的文件和資料庫連接,或完成日誌記錄或其他請求特定任務。
 註意: 在卸載階段,頁及其控制項已被呈現,因此無法對響應流做進一步更改。如果嘗試調用方法(如 Response.Write 方法),則該頁將引發異常
 
 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Git 是什麼? Git 是一個分散式的代碼管理容器,本地和遠端都保有一份相同的代碼。 Git 倉庫主要是由是三部分組成:本地代碼,緩存區,提交歷史,這幾乎是所有操作的本質,但是為了文章更加簡單易懂,就不圍繞這塊展開了,有興趣的可以去瞭解下。 開門見山,我們直接來說說 Git 有哪些常見的操作。 G ...
  • Query DSL 1. "Query DSL 概要,MatchAllQuery,全文查詢簡述" 2. " Match Query" 3. "Match Phrase Query 和 Match Phrase Prefix Query" Java Rest Client API 1. "Elasti ...
  • 在業務系統,異常處理是所有開發人員必須面對的問題,在一定程度上,異常處理的能力反映出開發者對業務的駕馭水平;本章將著重介紹如何在 WebApi 程式中對異常進行捕獲,然後利用 Nlog 組件進行記錄;同時,還將介紹兩種不同的 異常捕獲方式:管道捕獲/服務過濾;通過本練習,將學習到如何捕獲異常、處理異... ...
  •  寫在前面 上篇文章我帶著大家通過分析了一遍ASP.NET Core的源碼瞭解了它的啟動過程,然後又帶著大家熟悉了一遍配置文件的載入方式,最後引出了依賴註入以及控制反轉的概念!如果大家把前面幾張都理解了,那麼你也就入了ASP.NET Core的大門了。但是我們還需要一個版本控制工具來提高我們的編碼 ...
  • 項目源文件下載https://files.cnblogs.com/files/ckym/Log4NetTestSourceCode.zip Log4net是一款非常好用的日誌記錄的框架,使用它可以實現將日誌輸出到控制台,文件,資料庫等功能 網上有很多log4net的使用教程,一些非常簡陋,一些又很深 ...
  • 日期:2018年11月24日 環境:Window 10,VS2015 一、利用VS2015自帶的工具生成DLL 步驟: 1.利用C#準備一個.cs文件; 2.開始菜單->Visual Studio 2015->VS2015 開發人員命令提示; 3.輸入csc /t:library /out:C:\U ...
  • 在我們很多的Web應用中會遇到需要從後端將指定的數據或消息實時推送到前端,通常的做法是前端寫個腳本定時到後端獲取,或者藉助WebSocket技術實現前後端實時通訊。因定時刷新的方法弊端很多(已不再採用),所以基於WebSocket技術實現的通訊方案正越來越受大家喜愛,於是在ASP.NET中就有了鼎鼎... ...
  • 1.什麼是docker-swarm 在公司網站流量爆髮式增長的時候,一臺伺服器往往不能滿足需求,之前我的解決辦法是通過nginx來實現負載均衡,有了docker-machine之後,解決方案會更加簡單。當流量增加時,我們按照需要往docker-swarm集群中添加主機就可以了。 2.原理 我們把一組 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...