2011-04-14 76 views
0

您好,我有AllowPaging簡單的GridView設置爲true,我將數據綁定到它如下:DataGridView允許分頁,爲什麼它獲取所有數據?

  RulesGridView.DataSource = GetData(); 
      RulesGridView.DataBind(); 

其中

public static IEnumerable GetData() 
    { 
     return from gc in context.Current.SampleTable 
       where gc.SameField == sameValue 
       select new 
          { 
           example = SampleData 
          }; 
    } 

在SQL SampleTable我有4000行,我的問題是,爲什麼GridView控件是從這張表中取出所有數據,而不是隻有gridview的第一頁?我檢查了與SQL分析器,這是真的,顯示只是第一頁在GridView下載所有GridView頁面。我可以改變它從SQL只有這麼多什麼是足以在DataGrid的第一頁顯示數據,然後如果用戶點擊第二頁,GridView會要求另一個數據?

回答

0

因爲你是簡單返回所有記錄的綁定方法。

可能的解決方案:您必須修改您的GetData方法以接受將標記分頁並將其應用於內部查詢的參數。然後在每個「pageNext/Prev」事件中,您只需將該參數修改爲新值即可。

編輯:

Codeproject custom paging for gridView
Aspsnippets about pagination

+0

我認爲它返回某種枚舉數,它只能告訴需要回溯的數據,某種表達式,而gridView正在採用那些需要的數據,動態數據的工作原理可能與此類似。 – kosnkov 2011-04-14 22:24:21

+0

對,對不起。我錯過了IEnumerable返回類型。我的錯。你有沒有在你的gridview中設置PageIndex和相關的屬性?順便說一句:我要添加一些鏈接給你我的答案。 – Damb 2011-04-14 22:28:03

+0

好吧,ok pageIndex只是用來顯示另一部分數據。我的問題是爲什麼如果我將Ienumerable函數綁定到GridView,只是第一頁獲取所有數據,我不明白。 – kosnkov 2011-04-14 22:35:23

相關問題