2011-04-14 77 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

相关问题