国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

說說ASP.NET的IsPostBack

2019-11-17 01:40:21
字體:
來源:轉載
供稿:網友

說說asp.net的IsPostBack

學習asp.net,就不能不談IsPostBack屬性,顧名思義,這是是否回發的意思,多用于判斷是不是第一次打開

一、IsPostBack介紹

Page.IsPostBack是一個標志:當前請求是否第一次打開。調用方法為:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者this.Page.IsPostBack,它們都等價。

1)當通過IE的地址欄等方式打開一個URL時是第一次打開, 當通過頁面的提交按鈕或能引起提交的按鈕以POST的方式提交的服務器時,頁面就不再是第一次打開了。(每點擊一次按鈕,都是一次加載)

2)IsPostBack只有在第一次打開的時候是false,其它時候都是true

3).Net判斷一個Page是否第一次打開的方法:Request.Form.Count>0

4)每次頁面Load的時候,根據需要把每次都要加載的代碼放在IsPostBack中,只需要加載一次的代碼放在if(!IsPostBack)中。

5)每次用戶回傳服務器任何信息的時候,都會引發isPostBack屬性用來判斷此用戶是否曾經做過登陸或者其他事件。

二、IsPostBack結論

對.Net的源代碼中相關的處理進行的分析得到如下的結論:

1)對于使用Server.Transfer進行遷移時遷移到的頁面其IsPostBack=false。

2)Post方式如果Request中沒有請求值,即Request.Form =null則IsPostBack=false;Get方式如果Request中沒有請求值,即Request.QueryString =null則IsPostBack=false。

3)如果QueryString或Form雖然有請求值,但是QueryString或Form中的Key沒“__VIEWSTATE”和“__EVENTTARGET”和“__VIEWSTATEFIELDCOUNT”,并且沒有鍵為“null”,值以“__VIEWSTATE”開頭并且也沒有值為“__EVENTTARGET”的鍵值對,則IsPostBack=false。

4)使用Response.Redirect方式向自畫面遷移時,此時IsPostBack=false。

5)發生跨頁提交(CrossPagePostBack),當訪問PReviousPage屬性的時候,對于源PageIsPostBack=true。

6)發生跨頁提交(CrossPagePostBack)時目標頁面是IsPostBack=false

7)使用Server.Execute遷移到的頁面其IsPostBack=false。

8)在Page運行期間其對應的DLL被更新了并且Page的樹結構發生過變化,這種情況下請求時IsPostBack=false。

總之,可以這樣來理解這些結論:一般情況判斷Request中如果沒有請求值則IsPostBack=false。如果有請求值但是不包括“__VIEWSTATE”等一些特殊的鍵或值,則IsPostBack=false(每次請求后.Net框架會將一些特殊的隱藏域“__VIEWSTATE”等返回給客戶端)。還有一些特殊的情形是上面的規則不能正確判斷的需要特殊處理的,這些情形包括Server.Transfer,Response.Redirect,CrossPagePostBack,Server.Execute,發生了頁面元素變化及重新編譯。

看似很簡單的東東,還有不少的知識吧?


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大理市| 唐河县| 新竹市| 遂川县| 全州县| 沁阳市| 津南区| 公主岭市| 云安县| 黄骅市| 阜城县| 阜宁县| 林口县| 嘉兴市| 通辽市| 浪卡子县| 冕宁县| 新密市| 阜新市| 东源县| 河北省| 泰兴市| 灵丘县| 晴隆县| 长岛县| 罗定市| 绵阳市| 仁布县| 灵石县| 木里| 岳普湖县| 卓资县| 汤原县| 客服| 江川县| 安乡县| 莱州市| 嵩明县| 子长县| 湾仔区| 若羌县|