ASP.NET中IsPostBack的用法大家都了解嗎?其實Ispostback是page類的屬性,用于確定當前表單的請求是否是第一個請求,下面錯新技術頻道小編給大家詳細介紹。
一、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。
以上就是錯新技術頻道小編給大家推薦的詳解ASP.NET中IsPostBack的用法,其實除了以上介紹的以外,錯新技術頻道還有很多專業知識。
新聞熱點
疑難解答
圖片精選