如何为动态结果集保留自定义分页?(即)基于 10 个下拉列表选择,我的存储过程将动态生成结果集,但它会填充数百万条记录。
行静态知道记录数,自定义分页效率高,但是动态增长的结果集如何实现呢?
问题
我必须将通用列表绑定到 GridView,列是固定的,但是重新调整的行数是未知的,但是没有自定义分页,我的 GridView 花了 30 分钟来填充结果。
如何为动态结果集保留自定义分页?(即)基于 10 个下拉列表选择,我的存储过程将动态生成结果集,但它会填充数百万条记录。
行静态知道记录数,自定义分页效率高,但是动态增长的结果集如何实现呢?
问题
我必须将通用列表绑定到 GridView,列是固定的,但是重新调整的行数是未知的,但是没有自定义分页,我的 GridView 花了 30 分钟来填充结果。
如果可能,您应该使用 LINQ,因为可扩展的操作便于分页。
本质上,您将为 GridView 指定ObjectDataSource或LinqDataSource。
然后,您将拥有一个IQueryable<T>
接受起始位置和要检索的行数的方法。
然后你利用Skip()
andTake()
来实现简单的分页。
这是一篇关于这样做的非常好的文章。
请记住,Skip()
andTake()
是公开给任何实现 IEnumerable 的类的方法。因此,即使上面的文章使用 LINQ-SQL 作为他们的数据存储库,只要您自己的 DAL 公开 type 的集合IEnumerable
,您就可以使用 Skip and Take 模式。
希望有帮助。
执行此服务器端的一种简单方法是使用 LINQ。采用 .Take() 方法。