【问题标题】:How to improve efficiency of GridView or DetailsView in ASP.NET?如何提高 ASP.NET 中 GridView 或 DetailsView 的效率?
【发布时间】:2011-03-22 12:50:35
【问题描述】:

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

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

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

谁能给我建议一个解决这个问题的方法?

【问题讨论】:

    标签: c# asp.net .net gridview detailview


    【解决方案1】:

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

    查看以下相关链接:

    Custom Paging in Asp.net

    Paging tons of data in GridView

    How to get Specific rows From Table by Id Range

    Paging Large Datasets in SQL Server

    【讨论】:

      【解决方案2】:

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

      Paging Records Using SQL Server 2005 Database - ROW_NUMBER Function

      【讨论】:

        【解决方案3】:

        您可以使用custom paging in ASP.NET 2.0 datasets.

        另外,查看paging large datasets的其他方式

        【讨论】:

          猜你喜欢
          • 2014-01-05
          • 2019-04-27
          • 1970-01-01
          • 2013-07-03
          • 2020-11-16
          • 2017-04-21
          • 1970-01-01
          • 2011-02-21
          • 2016-12-18
          相关资源
          最近更新 更多