自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析IsPostBack屬性ASP.NET

開發(fā) 后端
本文介紹ASP.NET的IsPostBack屬性,其實在ASP.NET中有兩個viewstate.一個是控件本身的,用來維護控件自己的一些狀態(tài),比如說某個空間有變色的功能,它的viewstate就維護這個功能。

ASP.NET的IsPostBack屬性

現(xiàn)在從對ASP.NET頁面的執(zhí)行順序開始,體會一下B/S結(jié)構(gòu)的程序的特點,ASP.NET頁面的執(zhí)行順序說明:Page_Init(頁面初始化引發(fā)的事件)——>Page_Load(加載頁面時引發(fā)的事件)——>Control   Event(服務(wù)器控件引發(fā)的事件)——>Page_UnLoad(頁面從內(nèi)存中卸載時引發(fā)的事件)

Page_Init和Page_UnLoad不常用,但是這里還是要說明一下。Page_Init和Page_Load事件區(qū)別在于,只有后者才能完全加載控件,綁定數(shù)據(jù),雖然你可以在Page_Init中訪問控件,但是其viewstate都不會被加載,所以此時控件中只擁有默認(rèn)值。

這里說到了viewstate,我們先來做一個大致的了解——其實在ASP.NET中有兩個viewstate.一個是控件本身的,用來維護控件自己的一些狀態(tài),比如說某個空間有變色的功能,它的viewstate就維護這個功能,這個 viewstate是不能被用戶訪問的。相信自己寫過控件的朋友都會有這樣的感覺,自己寫控件當(dāng)然也要用自己的一個viewstate來維護這個控件的狀態(tài);而另外一個viewstate,是用戶使用的,這個viewstate和Session幾乎一模一樣,必須要先對其進行定義,才能使用。

每當(dāng)點擊ASP.NET的Web網(wǎng)頁上的Button、LinkButton或ImageButton等控件時,表單就會被發(fā)送到服務(wù)器上。如果某些控件的AutoPostBack屬性被設(shè)置為true,那么當(dāng)該控件的狀態(tài)被改變后,也會使表單會發(fā)送回服務(wù)器。?(AutoPostBack屬性,它只有兩個bool值,true/false.如果這個屬性被設(shè)置成false,那么點擊后就不會立刻將變化傳給服務(wù)器處理,也就不會有該控件的 SelectedIndexChanged事件。)

每次當(dāng)表單被發(fā)送回服務(wù)器,就會被重新加載,啟動Page_Load事件,執(zhí)行Page_Load事件處理程序中的所有代碼(注意,是每次都會執(zhí)行?。?/P>

很顯然把網(wǎng)頁的初始化代碼放在這里是最合適不過。我們經(jīng)常會希望在每次加載網(wǎng)頁時執(zhí)行一些代碼,如一些控件的數(shù)據(jù)綁定。

當(dāng)我們希望只有在網(wǎng)頁第一次加載時執(zhí)行另一些代碼(基本上都是數(shù)據(jù)的默認(rèn)綁定),甚至希望一些代碼在除首次加載外的每次加載時執(zhí)行。那么我們可以利用 IsPostBack特性來完成這一功能。在網(wǎng)頁第一次加載時,該屬性的值是false.如果網(wǎng)頁因回送而被重新加載,IsPostBack屬性的值就會被設(shè)置為true.在ASP.NET應(yīng)用程序中,如果需要在頁面第一次顯示時執(zhí)行一些初始化操作,必須判斷IsPostBack屬性!

在ASP.NET使用Page.IsPostback,那么就可以避免往返行程上的額外工作:如果處理服務(wù)器控件回發(fā),通常需要在第一次請求頁時執(zhí)行代碼,該代碼不同于激發(fā)事件時用于往返行程的代碼。如果檢查?Page.IsPostBack?屬性,則代碼可按條件執(zhí)行,具體取決于是否有對頁的初始請求或?qū)Ψ?wù)器控件事件的響應(yīng)。這樣做似乎很明顯,但實際上可以忽略此項檢查而不更改頁的行為。該屬性用的好壞,直接關(guān)系到你程序運行是否按照你最初的意愿,也關(guān)系到整個頁面的效率。因為,如果每次都會給控件綁定數(shù)據(jù),不管你是第一次訪問,還是提交了數(shù)據(jù)以后,那么這個頁面程序的效率可想而知。

一個B/S結(jié)構(gòu)的頁面每一次提交,它都會重新從頭到尾執(zhí)行一次。而C/S結(jié)構(gòu)的程序就不會這樣,這是和C/S結(jié)構(gòu)的程序最大的區(qū)別???其實,得不到控件的數(shù)據(jù),都是因為這個原因。

【編輯推薦】

  1. ASP.NET中的數(shù)據(jù)源控件
  2. 介紹ASP.NET的XML Web服務(wù)使用
  3. ASP.NET應(yīng)用程序的web.config文件
  4. 概述ASP.NET XML Web服務(wù)
  5. ASP.NET中實現(xiàn)HTTP請求
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-08-06 17:13:56

ASP.NET自定義控

2009-07-24 13:41:15

ASP.NET AJA

2009-08-05 18:36:12

ASP.NET Che

2009-07-31 12:43:59

ASP.NET MVC

2009-08-05 15:50:13

ASP.NET優(yōu)點

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設(shè)計

2009-08-04 17:16:16

ASP.NET代碼優(yōu)化

2009-08-05 16:50:09

ASP.NET For

2009-07-24 18:02:46

ASP.NET編程

2009-07-27 15:34:11

MembershipASP.NET

2009-07-27 17:25:53

ASP.NET驗證控件

2009-08-03 10:07:20

ASP.NET Ses

2009-08-05 13:16:43

ASP.NET URL

2009-08-05 16:17:29

ASP.NET For

2009-08-05 16:53:14

ASP.NET組件設(shè)計

2009-08-10 18:19:37

ASP.NET安裝環(huán)境

2009-08-10 18:43:05

ASP.NET安裝步驟

2009-08-10 14:55:43

ASP.NET htt

2009-07-27 14:24:16

ASP.NET訪問權(quán)限

2009-07-20 16:23:01

ASP.NET授權(quán)模塊
點贊
收藏

51CTO技術(shù)棧公眾號