糯米文學吧

位置:首頁 > 設計 > 網頁設計

ASP.NET Page函數調用解析

一.初始化部分:

ASP.NET Page函數調用解析

1.構造函數:創建page類的一個實例,初始化page類的屬性.

arsedSubObject函數:

protected virture void AddParsedSubObject(Object obj)

提取aspx文件中的服務器控件,並把它們添加到page的ControlCollection中.你可以通過rols獲得加載的所有服務器控件

rminePostBackMode函數:

protected internal virtual NameValueCollection DeterminePostBackMode ()

返回:NameValueCollection包含了用户通過get或post方式發送過來的數據,如果是第一次請求將返回空STATE 和 EVENTTARGET這兩個隱藏的表單字段將幫助我們來判斷是否是第一次請求. 在調用這個事件後ispostback的將會被設置.

it函數:

protected internal override void OnInit (EventArgs e)

調用init事件,初始化page中的所有控件為它們的'默認值(你在aspx頁面中設置的值,viewstate中值這時並不會被設置到控件上)

二.非第一次請求的進一不初始化:

PageStateFromPersistenceMedium函數:

protected internal virtual Object LoadPageStateFromPersistenceMedium ()

裝載viewstate信息到page對象中(這時並沒有把獲得的值設置給相應的控件)

ViewState函數:

protected virtual void LoadViewState (Object savedState)

為控件重新建立viewstate信息

essPostData函數:

一個私有方法,無法訪問

獲取用户輸入的數據,並把它們對應到相應控件的屬性上

//至此頁面中的所用控件的屬性都被裝載了,下面該相應你的事件了

三.事件處理部分

ad:

protected internal virtual void OnLoad (EventArgs e)

調用page_load方法為指定頁面信息,如執行數據庫查詢,指定本地變量屬性.(也就是我們常寫的那個Page_load事件)

四.非第一次請求需要執行的函數用以調用你你編寫的各個事件:

essPostData:再次調用ProcessPostData函數主要是處理在Page_Load事件中動態創建的控件的數據信息

eChangedEvents:響應控件屬性改變事件

ePostBackEvent:響應按鈕的提交事件

五.處理OnPreRender事件:

在頁面傳給瀏覽器之前,修改控件屬性的最後機會

六.至此頁面的內容就不可能被修改了,下面該為下一次用户的postback準備條件和生成相應的html文件了

ViewState:由於事件中可能改變了服務器控件中的屬性,因此我們需要更改的信息到viewstate中

PageStateToPersistenceMedium:為頁面保存viewstate狀態信息,也就是將上面獲得的viewstat對象保存到隱藏字段或session中

er:創建html文件並把它發送到瀏覽器

ad:釋放相應的資源,如數據庫連接,文件句柄等