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.
user2467610
问问题
143 次
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 回答