我正在编写报告页面。在此页面中,有两个日期字段供用户过滤日期,并根据CodeBehind中的这些日期填充GridView(当用户单击按钮视图时)。现在我想为这个GridView实现一个分页/排序功能。我已经研究过并且看到GridView的默认分页效率不高(我的报表可能有数千条记录)和自定义分页,但这需要使用ObjectDataSource(我不使用)。因此,任何人都可以向我推荐一些最适合这种情况的方法吗?一些教程将很高兴地欣赏:)
谢谢,
答案 0 :(得分: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
这是我观察中最有效的方式,因为它会导致很少的流量,如果你缓存记录数,你就不会有很多疑问。