ASP.NET Page函式呼叫順序及解釋
asp.net頁面事件執行順序:
一.初始化部分:
1.建構函式:建立page類的一個例項,初始化page類的屬性.
2.AddParsedSubObject函式:
protected virture void AddParsedSubObject(Object obj)
提取aspx檔案中的伺服器控制元件,並把它們新增到page的ControlCollection中.你可以通過Page.Controls獲得載入的所有伺服器控制元件
3.DeterminePostBackMode函式:
protected internal virtual NameValueCollection DeterminePostBackMode ()
返回:NameValueCollection包含了使用者通過get或post方式傳送過來的資料,如果是第一次請求將返回空.VIEWSTATE 和 EVENTTARGET這兩個隱藏的表單欄位將幫助我們來判斷是否是第一次請求. 在呼叫這個事件後ispostback的將會被設定.
4.OnInit函式:
protected internal override void OnInit (EventArgs e)
呼叫init事件,初始化page中的所有控制元件為它們的預設值(你在aspx頁面中設定的值,viewstate中值這時並不會被設定到控制元件上)
二.非第一次請求的進一不初始化:
1.LoadPageStateFromPersistenceMedium函式:
protected internal virtual Object LoadPageStateFromPersistenceMedium ()
裝載viewstate資訊到page物件中(這時並沒有把獲得的值設定給相應的控制元件)
2.LoadViewState函式:
protected virtual void LoadViewState (Object savedState)
為控制元件重新建立viewstate資訊
3.ProcessPostData函式:
一個私有方法,無法訪問
獲取使用者輸入的資料,並把它們對應到相應控制元件的屬性上
//至此頁面中的所用控制元件的屬性都被裝載了,下面該相應你的事件了
三.事件處理部分
1.OnLoad:
protected internal virtual void OnLoad (EventArgs e)
呼叫page_load方法為指定頁面資訊,如執行資料庫查詢,指定本地變數屬性.(也就是我們常寫的那個Page_load事件)
四.非第一次請求需要執行的函式用以呼叫你你編寫的各個事件:
1.ProcessPostData:再次呼叫ProcessPostData函式主要是處理在Page_Load事件中動態建立的控制元件的資料資訊
2.RaiseChangedEvents:響應控制元件屬性改變事件
3.RaisePostBackEvent:響應按鈕的提交事件
五.處理OnPreRender事件:
在頁面傳給瀏覽器之前,修改控制元件屬性的最後機會
六.至此頁面的內容就不可能被修改了,下面該為下一次使用者的postback準備條件和生成相應的html檔案了
1.SaveViewState:由於事件中可能改變了伺服器控制元件中的屬性,因此我們需要更改的資訊到viewstate中
2.SavePageStateToPersistenceMedium:為頁面儲存viewstate狀態資訊,也就是將上面獲得的viewstat物件儲存到隱藏欄位或session中
3.Render:建立html檔案並把它傳送到瀏覽器
4.Unload:釋放相應的資源,如資料庫連線,檔案控制程式碼等
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-665561/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 構造和解構函式呼叫順序函式
- toString()和valueOf()函式呼叫和優先順序函式
- js解惑-函式執行順序JS函式
- 一個能讓你瞭解所有函式呼叫順序以及函式耗時的Android庫 (更新版)函式Android
- 繼承中引數傳遞及呼叫順序繼承
- C#中Page執行順序:OnPreInit()、OnInit()……C#
- linux socket常用函式以及使用順序Linux函式
- 給ASP.NET MVC及WebApi新增路由優先順序ASP.NETMVCWebAPI路由
- MySQL 儲存函式及呼叫MySql儲存函式
- python運算子及優先順序順序Python
- 第九篇:順序容器及其常用函式函式
- C++建構函式初始化順序C++函式
- Oracle對於物件名的解釋順序Oracle物件
- innodb page重組空間壓縮函式(btr_page_reorganize_low)註釋函式
- C/C++多引數函式引數的計算順序與壓棧順序C++函式
- Vue父子元件生命週期執行順序及鉤子函式的個人理解Vue元件函式
- ASP.NET頁面事件:順序與回傳詳解ASP.NET事件
- 繼承與派生,多繼承,函式過載,建構函式呼叫順序 靜態多型和動態多型繼承函式多型
- js函式整合佇列順序執行外掛JS函式佇列
- (C++通訊架構學習筆記):日誌列印、優化main函式呼叫順序C++架構筆記優化AI函式
- js函式和變數的執行順序【易錯】JS函式變數
- 建立派生類物件,建構函式的執行順序物件函式
- C語言nice()函式:改變程式優先順序C語言函式
- GROUPBY 和開窗函式執行順序的問題函式
- php名稱空間的呼叫順序PHP
- 詳細講解函式呼叫原理函式
- 詳解 Qt 呼叫 DLL功能函式QT函式
- 圖解React的生命週期及執行順序圖解React
- C++箴言:避免解構函式呼叫虛擬函式C++箴言函式
- load 與initialize的呼叫順序小結
- iOS UITableView Cell和 SectionHeader 的呼叫順序iOSUIViewHeader
- ASP.NET前臺使用__doPostBack函式呼叫後臺事件ASP.NET函式事件
- SAP ABAP 函式總結 常用函式解釋函式
- bind( )介面卡(Adapter) -- 呼叫全域性函式及成員函式APT函式
- Java static變數、作用域、建構函式初始化順序Java變數函式
- 詳解 JS 中 new 呼叫函式原理JS函式
- 子函式呼叫函式
- 函式呼叫棧函式