ASP.NET的Page_Load事件


今天在做Datalist 中遍歷復選框選中狀態時,后台的代碼獲取checkbox的選中狀態始終是false,研究了好久才發現跟
Page_Load()事件有關。

經過測試Page_Load事件執行的情況分為兩種:
第一種:頁面第一次加載時執行。
第二種:前台頁面事件觸發后 ,后台的Page_Load會在一次執行。
1  protected void Page_Load(object sender, EventArgs e)
2   { 
3          dataList_win(page);//數據綁定函數
4     }

當頁面第一次加載時Page_Load事件內部執行DataList數據綁定的函數,在頁面點擊按鈕觸發事件時在后台的代碼會再一次執行Page_Load事件(數據綁定函數再一次執行),這樣的話就算前台的復選框全都選中,進入后台時就會重新進行數據綁定,這樣都就對前台的復選框選中狀態重置,所以要在Page_Load()事件中對數據綁定的函數加上判斷。

1  protected void Page_Load(object sender, EventArgs e)
2  {
3  if (!Page.IsPostBack)//是否是頁面第一次加載
4         {
5         wj_win(page);//第一次加載執行
6         }
7 }
PS:后台進行數據綁定的函數在被調用的時候頁面才會顯示數據,所以在Page_Load事件內添加該函數,這樣就會在頁面加載時顯示數據.
無論何種情況都會執行Page_Load,這時就有必要判斷一下服務器處理Page_Load事件時是在何種情況發生; 
而Page.IsPostBack正好解決了這個問題; 
當是第一種情況的時候(為了響應客戶的請求)Page.IsPostBack返回false; 
當是第二種情況的時候(把該頁面回發到服務器給服務器處理時)Page.IsPostBack返回True; 
!Page.IsPostBack 就是為了 防止服務端的加載重復綁定數據!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM