我处理网格中大量记录的情况。而不是将所有记录绑定到网格中。为什么我们不应该绑定属于第5页的记录集。
答案 0 :(得分:2)
您可以将AllowPaging
设置为true,将PageSize
设置为您希望每页显示的记录数,从而在GridView上启用分页。
分页的优势在于,您可以将完整数据源绑定到GridView,并允许用户在页面之间移动,在服务器端编程更少,以便始终使用完整数据源。
编辑:
还建议您不要将整个数据集置于GridView视图状态,更好的选择是缓存数据并在页面加载中重新绑定
答案 1 :(得分:2)
作为一种好的做法,不应该将从查询中检索到的所有记录直接绑定到控件(如网格视图),除非您当然绝对确定记录数量很少。
这是因为当记录数量很大时,页面加载速度会变慢,因为绑定需要花费很多时间。
我在之前的项目中使用的一种方法是获取受查询影响的记录总数。 (可以说他们是1000)。
然后我将记录数除以页面大小(比如说100)。
所以现在我提供页面分页(1-10)。
当用户点击特定页面时,我使用SQL中的ROW_NUMBER()
函数获取与该页面相关的记录。
查询将类似于
SELECT x, y, ROW_NUMBER() OVER(ORDER BY z asc) AS 'RowNumber'
FROM t WHERE RowNumber > lowerlimit and RowNumber < upperlimit.
使用当前页码和页面大小计算下限和上限。
我希望这能回答你的问题