由CodeBehind数据源填充的GridView的自定义分页/排序?

问题描述 投票:0回答:1

我正在编写报告页面。在此页面中,有两个日期字段供用户过滤日期,并且 GridView 根据代码隐藏中的这些日期进行填充(当用户单击按钮视图时)。现在我想为此 GridView 实现分页/排序功能。我研究过,发现 GridView 有默认分页,效率不是很高(我的报表表可能有数千条记录)和自定义分页,但这需要使用 ObjectDataSource(我不使用)。因此,任何人都可以向我推荐一些最适合这种情况的方法吗?一些教程将不胜感激:)

谢谢,

asp.net gridview pagination custompaging
1个回答
1
投票

假设您将记录存储在数据库中,我将获取记录计数并使用该数字进行分页。然后我会查询我想在每个页面上看到的内容。

string.Format(@"
    SELECT TOP {0} * FROM Records WHERE pkId NOT IN (
        SELECT TOP {1} pkId FROM Records ORDER BY pkId
    ) ORDER BY pkId;",
    upperBoundary,
    lowerBoundary
);
例如,

其中

upperBoundary
就是
lowerBoundary + itemsPerPage
。使用 MSSQL,我们没有 MySQL 的 LIMIT 功能,但它的作用是一样的。

缩小日期范围,就像这样

SELECT * FROM Records WHERE Date > earlyDate AND Date <= lateDate

在我看来,这是最有效的方法,因为它造成的流量很少,而且如果您缓存记录计数,也不会有太多查询飞来飞去。

© www.soinside.com 2019 - 2024. All rights reserved.