程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> ASP.NET Page函數調用順序解析

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:釋放相應的資源,如數據庫連接,文件句柄等

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved