由CodeBehind Datasource填充的GridView的自定义分页/排序?

时间:2010-11-15 04:19:47

标签: asp.net gridview pagination paging custompaging

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

谢谢,

1 个答案:

答案 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
);

例如,upperBoundarylowerBoundary + itemsPerPage。使用MSSQL,我们没有MySQL的LIMIT功能,但这也是如此。

缩小日期,就像是

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

这是我观察中最有效的方式,因为它会导致很少的流量,如果你缓存记录数,你就不会有很多疑问。