2013-07-19 80 views
1

我曾嘗試使用下面的方法填充一個GridView:分頁的GridView只有填充第一頁

List<MyObject> items = new List<MyObject>(); 
// here I am filling the list using SQL 
     PanelGridView.DataSource = items; //fill GridView with objects, this works when NOT using paging 
     PanelGridView.DataBind(); 

有了這個,和尋呼禁用,我有一個完全填充的GridView控件。但是,當我打開分頁時,第一頁被填充,但後面的所有頁面都是空的。我怎樣才能確保所有的項目都被考慮在內,並且在頁面之間正確劃分(給定我指定的頁面大小)?

編輯:我忘了,包括這個代碼:

protected void PanelGridView_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    PanelGridView.PageIndex = e.NewPageIndex; 
    PanelGridView.DataBind(); 
} 
+0

什麼是您的面板對象? 「項目」是定義的,但不是面板。你能否添加缺少的代碼? – Chris

+0

我更改了代碼以避免混淆,並忘記將面板更改爲項目。修復了代碼。 – muttley91

回答

3

確保您在更改後的頁面數據綁定網格,也請務必在頁面索引設置爲新的頁面索引。這是在PageChanging事件處理程序中完成的。

+0

我對此很抱歉,我應該包含該代碼。我編輯了原文,表明我正在這樣做。它確定它應該在PageIndexChanging處理程序中,而不是PageIndexChanged處理程序? – muttley91

+0

您還必須在redatabinding之前重新設置PanelGridView的數據源。 – Duffp

+0

爲什麼GridView在更改頁面時會丟失數據源? – muttley91