大多数我已经通过谷歌搜索看起来像他们从一个IEnumerable集合形式的数据库表中的所有行中发现的ASP.NET MVC寻呼解决方案后,对IEnumerable集合一些分页转换,然后将结果返回给视图。 我希望能够在数据库端页面,但仍然有一些寻呼类做网页数量计算和HTML生成。 是否有解决方案在那里,做到这一点? 或者,我一直在寻找在做到这一点的,但我没有看到它,因为我看他们是错的?
这就是我一直在寻找:
- http://blogs.taiga.nl/martijn/2008/08/27/paging-with-aspnet-mvc/
- http://www.codeproject.com/KB/aspnet/pagination_class.aspx
- http://www.squaredroot.com/2009/06/15/return-of-the-pagedlist/
看顾的Nerdinner样品。
var upcomingDinners = dinnerRepository.FindUpcomingDinners();
var paginatedDinners = upcomingDinners.Skip(10).Take(20).ToList();
尽管FindUpcomingDinners()获得所有即将到来的晚餐,是不是在数据库执行查询,直到你的下一行调用ToList()。 这就是你跳过10行,只得到后
在接下来的20。
你错了。 PagedList会做数据库服务器上,因为它有IQueryable的扩展。
ScottGu对在Asp.Net(包括MVC)使用LINQ一个非常好的多部分博客系列。 我建议你阅读整个系列从1开始的一部分,但第3部分涵盖exectly你在找什么-标题为“分页我们的查询结果”特别是与数据库中的分页交易。
那岂不是更高效地实现一个存储过程,需要@StartPage和@PageSize参数?
这种方式,您只检索数据的子集,实际上是正在使用
只是有类似的叫TOTALCOUNT out参数或东西让你知道有多少个页面链接到创建和各个环节onclick事件将通过页面数量的JavaScript函数将异步更多的数据加载股利或其他HTML元素
简单
文章来源: Is there a paging solution for ASP.NET MVC that does paging in the database?