1

Can somebody please explain me about custom paging, filtering and sorting . Though I have searched on Internet about these things but all those ways are difficult to understand. do any body have a better approach to do paging, filtering and sorting in a single query. also How I will be able to do all those things in a single query Actually I have created a grid using forloop. So , how can I do paging and filtering custom.I have checked the loginc but i hav not understood . Row number is being used in many of the examples of paging online. can somebody please explain this. Sorry for the poor english. Please help me ASAP. Thank you.

4

1 回答 1

0

我发现网格是显示大量数据的最简单方法。您可以尝试使用谷歌搜索asp:GridView的示例。网格自动为您添加的基本功能(当您启用分页时)是:

  • 上一页、下一页和用于在页面之间移动的类似按钮
  • 最大页数/项目数
  • 当前页面

一个重要的不分页:

  • 客户端分页:一次加载所有数据,但一次只显示 10/15/20/... 项
  • 服务器端分页:仅加载您正在查看的页面(因此每次您转到不同的页面时都需要进行数据库调用)

通常,客户端分页是“默认”。为您的网格提供一个列表,设置每页要查看的项目数,然后您就完成了。这对于小桌子(几十个项目)来说足够好,但如果规模很差。如果您的表中有一百万个项目,它会在显示任何内容之前尝试(并且很可能会失败)加载所有项目。

您可以对显示的项目数量施加硬性限制,但处理大型表的最佳方法是服务器端分页。为此,将需要一些定制。这是需要您提到的“行号”的地方(服务器端分页示例)。拥有一个行号可以让您获取一个“页面”。例子:

  • 页数:5
  • 总计(记录数):100
  • PageSize(每页显示的记录数):10

如果您想要第 5 页的记录,则需要以某种方式对列表进行排序,然后将记录 41 到 50 以显示第 5 页的内容。在查询中,可以使用ROWNUMBER BETWEEN ((Page - 1) * PageSize) + 1 AND Page * PageSize. 在实体框架中,您可以使用.Skip((Page - 1) * PageSize).Take(PageSize)do 获得相同的结果。

注意:在上面的示例中,分页假定从 1 开始(第一页 = 第 1 页)。

于 2013-08-26T13:30:09.363 回答