Fla*_*nix 16 c# asp.net-mvc paging
我一直试图实现分页已经有一段时间了,我发现这个教程用于使用MVC进行分页:ASP.NET MVC分页完美地完成了
现在,在这个解决方案中,我在数据库中查询整个客户端集,然后返回一个客户端的分页列表而不是普通列表.
我觉得这很令人不安,因为我只打算每页显示10或20个条目,而我的数据库很容易就会有超过一百个.因此,每次我想显示Index页面时查询整个数据库似乎都是一个糟糕的解决方案.
如果我理解错误的东西,请立即剪掉我,但对我而言,这个解决方案绝不是完美的.
我误解了什么吗?是否有一个更有效的解决方案或库用于MVC的分页?
自然地,分页将需要知道总结果计数,以便逻辑确定有多少页面等.但是,不是将所有结果都降低,而是将查询构建到数据库以返回分页量(例如30)和as以及所有结果的计数.
例如,如果您使用的是Entity Framework或LINQ2SQL,则可以执行此类操作
IQueryable<Result> allResults = MyRepository.RetrieveAll();
var resultGroup = allResults.OrderByDescending(r => r.DatePosted)
                                               .Skip(60)
                                               .Take(30)
                                               .GroupBy(p => new {Total = allResults.Count()})
                                               .First();
var results = new ResultObject
{
    ResultCount = resultGroup.Key.Total,
    Results = resultGrouping.Select(r => r)
};
因为我们在结果集上没有完成.ToList(),直到我们完成了我们想要的结果,我们还没有将结果带入内存.当我们在结果集上调用.First()时就完成了.
最后,我们最终得到的Object(ResultObject)可用于稍后进行分页.由于我们有计数,我们已经知道我们在哪个页面(3我们跳过60,每页30)并且我们有结果显示.
进一步阅读和信息
| 归档时间: | 
 | 
| 查看次数: | 12976 次 | 
| 最近记录: |