在我的数据库中,我有 10000000 条记录。在 GridView First 我显示前 10 条记录。为了查看下一条记录,用户需要单击页码 (1,2,3,------10000)。但是当我第一次检索 10 条记录时,GridView 分页没有显示。
有没有办法在 ASP.NET GridView 中静态显示分页?
在我的数据库中,我有 10000000 条记录。在 GridView First 我显示前 10 条记录。为了查看下一条记录,用户需要单击页码 (1,2,3,------10000)。但是当我第一次检索 10 条记录时,GridView 分页没有显示。
有没有办法在 ASP.NET GridView 中静态显示分页?
对于这么多的记录,我不会推荐 Paging。您可以显示最近添加的前 20 条记录,并提供过滤掉记录的选项。用户可以输入关键字。使用此新结果集重新查询和重新绑定 GridView。
您也可以考虑使用PetaPoco,一种 Micro-ORM,它可以帮助您获取分页结果。
有这么多记录,您确实需要考虑正在运行的确切查询以拉回数据。
有很多方法可以进行数据分页(http://beyondrelational.com/modules/2/blogs/28/posts/10434/sql-server-server-side-paging-with-rownumber-function.aspx)。但是,“最佳”方式取决于您正在运行的 SQL Server 的确切版本。
本质上,解决方案归结为您通过某种类型的查询传递页码和每页的记录数。通常,作为查询的存储过程可能会非常混乱。
一旦到了那里,你就有一个选择。要么将总记录数作为查询中的 OUT 参数发回,然后正常返回结果集,要么将总记录数作为一列发回。这两种选择肯定存在效率问题,因为一种方式需要查询运行两次,另一种方式需要额外的数据列,这会增加网络流量。
一旦你解决了这个问题,你就可以准确地弄清楚你希望 UI 是如何工作的。