2015-02-06 25 views
0

我有一個包含複選框(chkSelect)的gridview(gvClient)。 我已經爲同一個網格啓用了分頁功能,並且我有很多要顯示的數據。 但我面臨這個問題,即從gridview中檢索所有數據時,我只獲取當前頁面的gridview數據。 我的代碼:分頁啓用時無法訪問gridview的所有記錄

foreach (GridViewRow gvrClient in gvClient.Rows) // gvClient.Rows not giving all gridview rows 
{ 
    cbSelect = (CheckBox)gvrClient.FindControl("chkSelect"); 
    if (cbSelect.Checked == true) 
    { 
     //Operations 
    } 
} 

我得到了下面就谷歌的解決方案使用,但它無法正常工作。

gvClient.AllowPaging=false; 
gvClient.DataBind(); 
foreach (GridViewRow gvrClient in gvClient.Rows) // gvClient.Rows not giving all gridview rows 
{ 
    cbSelect = (CheckBox)gvrClient.FindControl("chkSelect"); 
    if (cbSelect.Checked == true) 
    { 
     //Operations 
    } 
} 
gvClient.AllowPaging=true; 
gvClient.DataBind(); 

對此有何幫助?

+0

當您更改gridView中的頁面時會發生什麼?數據不會改變? – Marco 2015-02-06 07:36:02

+0

是的,數據不會改變。 – user2493287 2015-02-06 07:40:24

+0

我的gridview分頁工作正常。唯一的問題是,我無法檢索由於分頁的所有gridview記錄。 – user2493287 2015-02-06 08:13:18

回答

0

您無法訪問c#中的所有頁面。 順便說一下,爲什麼你想訪問網格的完整數據?因爲當您更改頁面時,網格會再次被重置。網格不維護頁面狀態數據。 您可以從數據表/數據集訪問相同的數據,該數據集/數據集已設置爲該網格的數據源..

+0

我同意Abhijeet,假設我有20個記錄在GridView中,其中10個記錄選中,10未選中複選框,這是在gridview本身。所以,如果我使用數據表/數據集,我如何獲取並取消選中gridview的記錄?如果您有20條記錄,請參閱 – user2493287 2015-02-06 08:43:22

+0

。在頁面1上有10條記錄,在頁面2上有10條記錄,假設你正在看到頁面1,那麼你只能訪問頁面1上的10個複選框。 還有一件事。假設用戶轉到頁面1並選中10箇中的3個複選框,然後轉到第2頁並在第2頁上選中5複選框。如果用戶再次訪問page1。那麼這3個複選框將不會保持檢查狀態,用戶將看到所有複選框均未勾選。 – 2015-02-07 04:05:16

+0

網格本身將保存逐頁數據。網格只會保存你所看到的頁面數據。所以我的觀點是。網格不保存該數據,因此沒有必要訪問所有網格頁面。 – 2015-02-07 04:08:20