ASP.NET Page函數(shù)調(diào)用順序解析
1.構(gòu)造函數(shù):創(chuàng)建page類的一個(gè)實(shí)例,初始化page類的屬性.
2.AddParsedSubObject函數(shù):
protected virture void AddParsedSubObject(Object obj)
提取aspx文件中的服務(wù)器控件,并把它們添加到page的ControlCollection中.你可以通過(guò)Page.Controls獲得加載的所有服務(wù)器控件
3.DeterminePostBackMode函數(shù):
protected internal virtual NameValueCollection DeterminePostBackMode ()
返回:NameValueCollection包含了用戶通過(guò)get或post方式發(fā)送過(guò)來(lái)的數(shù)據(jù),如果是第一次請(qǐng)求將返回空.VIEWSTATE 和 EVENTTARGET這兩個(gè)隱藏的表單字段將幫助我們來(lái)判斷是否是第一次請(qǐng)求. 在調(diào)用這個(gè)事件后ispostback的將會(huì)被設(shè)置.
4.OnInit函數(shù):
protected internal override void OnInit (EventArgs e)
調(diào)用init事件,初始化page中的所有控件為它們的默認(rèn)值(你在aspx頁(yè)面中設(shè)置的值,viewstate中值這時(shí)并不會(huì)被設(shè)置到控件上)
二.非第一次請(qǐng)求的進(jìn)一不初始化:
1.LoadPageStateFromPersistenceMedium函數(shù):
protected internal virtual Object LoadPageStateFromPersistenceMedium ()
裝載viewstate信息到page對(duì)象中(這時(shí)并沒(méi)有把獲得的值設(shè)置給相應(yīng)的控件)
2.LoadViewState函數(shù):
protected virtual void LoadViewState (Object savedState)
為控件重新建立viewstate信息
3.ProcessPostData函數(shù):
一個(gè)私有方法,無(wú)法訪問(wèn)
獲取用戶輸入的數(shù)據(jù),并把它們對(duì)應(yīng)到相應(yīng)控件的屬性上
//至此頁(yè)面中的所用控件的屬性都被裝載了,下面該相應(yīng)你的事件了
三.事件處理部分
1.OnLoad:
protected internal virtual void OnLoad (EventArgs e)
調(diào)用page_load方法為指定頁(yè)面信息,如執(zhí)行數(shù)據(jù)庫(kù)查詢,指定本地變量屬性.(也就是我們常寫(xiě)的那個(gè)Page_load事件)
四.非第一次請(qǐng)求需要執(zhí)行的函數(shù)用以調(diào)用你你編寫(xiě)的各個(gè)事件:
1.ProcessPostData:再次調(diào)用ProcessPostData函數(shù)主要是處理在Page_Load事件中動(dòng)態(tài)創(chuàng)建的控件的數(shù)據(jù)信息
2.RaiseChangedEvents:響應(yīng)控件屬性改變事件
3.RaisePostBackEvent:響應(yīng)按鈕的提交事件
五.處理OnPreRender事件:
在頁(yè)面?zhèn)鹘o瀏覽器之前,修改控件屬性的最后機(jī)會(huì)
六.至此頁(yè)面的內(nèi)容就不可能被修改了,下面該為下一次用戶的postback準(zhǔn)備條件和生成相應(yīng)的html文件了
1.SaveViewState:由于事件中可能改變了服務(wù)器控件中的屬性,因此我們需要更改的信息到viewstate中
2.SavePageStateToPersistenceMedium:為頁(yè)面保存viewstate狀態(tài)信息,也就是將上面獲得的viewstat對(duì)象保存到隱藏字段或session中
3.Render:創(chuàng)建html文件并把它發(fā)送到瀏覽器
4.Unload:釋放相應(yīng)的資源,如數(shù)據(jù)庫(kù)連接,文件句柄等
相關(guān)文章
ASP.NET實(shí)現(xiàn)License Key輸入功能的小例子
當(dāng)我們安裝微軟的軟件,多數(shù)軟件是需要輸入license key。它有五個(gè)文本框,輸入完第一個(gè)文本框之后,光標(biāo)自動(dòng)跳至下一個(gè)文本框。 Insus.NET今天也使用asp.net來(lái)模仿一個(gè)。呵呵。2013-03-03ASP.NET Core 數(shù)據(jù)保護(hù)(Data Protection 集群場(chǎng)景)下篇
這篇文章主要為大家再一次介紹了ASP.NET Core 數(shù)據(jù)保護(hù)(Data Protection),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
要想在ASP.NET中操作SQL數(shù)據(jù)庫(kù)首先需要在WebConfig中配置數(shù)據(jù)庫(kù)連接字符串,之后在.cs文件中獲取連接字符串,具體的配置及獲取方法如下,感興趣的朋友可以參考下哈2013-06-06Web API身份認(rèn)證解決方案之Basic基礎(chǔ)認(rèn)證
本文詳細(xì)講解了Web API身份認(rèn)證解決方案之Basic基礎(chǔ)認(rèn)證,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03asp.net程序編譯調(diào)試時(shí)偶爾出現(xiàn)訪問(wèn)被拒絕的錯(cuò)誤的解決方法
asp.net程序編譯調(diào)試時(shí)偶爾出現(xiàn)訪問(wèn)被拒絕的錯(cuò)誤的解決方法...2007-04-04asp.net dataview做無(wú)限極分類的又一用法
通常看到別人以及自己以前在綁定無(wú)限極分類的時(shí)候,總是需要多次連接數(shù)據(jù)庫(kù),這樣覺(jué)得造成了資源的浪費(fèi),然后我想一次把所有數(shù)據(jù)先取出來(lái)(類型不是很多的情況),這樣可以節(jié)省服務(wù)器的開(kāi)銷。2009-11-11