5

在 ASP.net 中,当我们对 Gridview 或 DetailsView 执行分页时,Gridview 每次都从数据库中获取所有行。

假设我们的数据库包含 100 行,并且我们在 Gridview 中配置了分页,页面大小为每页 10 条记录。但是每当我们单击任何特定页号的 gridview 的分页器控件时。那么 GridView 应该只从数据库中获取特定的 10 行。

如果我们单击第 3 页,那么它应该只查询第 21-30 行,但它会获取所有行并忽略剩余的 . 这只是资源的浪费。

任何人都可以建议我解决这个问题吗?

4

3 回答 3

7

要实现这种优化的数据获取,您必须实现自定义分页(而不是使用 GridView 分页)。此外,您应该使用 SQL 仅获取要在页面上显示的行(不是所有数据)。

请参阅以下相关链接:

Asp.net 中的自定义分页

在 GridView 中分页大量数据

如何通过 Id 范围从表中获取特定行

在 SQL Server 中对大型数据集进行分页

于 2010-07-29T05:20:04.640 回答
3

您可以在 ASP.NET 2.0 数据集中使用自定义分页。

此外,检查分页大型数据集的其他方法

于 2010-07-29T05:21:53.700 回答
2

如果您使用的是 Sql Server 2005+,您可以尝试使用 ROW_NUMBER 函数来分页数据库,如本文所述:

使用 SQL Server 2005 数据库分页记录 - ROW_NUMBER 函数

于 2010-07-29T05:24:31.843 回答