首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PagedList分页

PagedList分页
EN

Stack Overflow用户
提问于 2014-12-22 10:09:53
回答 2查看 2.3K关注 0票数 1

我在MVC中使用PagedList。一切都很好,但情况是这样的。

从存储过程加载数据。

因此,当搜索条件满足SP返回200条记录时,分页就像Page12344 .(实际需要的场景)正在按预期工作,并运行PageSize 20。

但是当需求改变时

当第1页点击得到20条记录,第2页得到20条记录等等(每次点击从数据库)。因此,在初始加载时,SP只返回20条记录,而不是实际记录(200条记录),只有一个分页页面显示为

但是我们知道实际的200条记录分页应该是第1页,第2页,第3页,它失败了。因此,分页只为20个记录创建,而不是实际数字(即200 )。

是的,工作是SP返回作为输出总共200个记录,所以我知道有多少总记录,但如何覆盖Html.PagedListPager以显示页面12,2,3?

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-23 04:09:51

是的,StaticPagedList达到了目的。

所需的改动不多:

代码语言:javascript
复制
var usersAsIPagedList = new StaticPagedList<CLASSNAME>(LIST, PAGEINDEX, PAGESIZE, TOTALCOUNT);

这里的TOTALCOUNT是你的例子的200。

在返回视图时,请确保返回usersAsIPagedList而不是usersAsIPagedList.ToPagedList

代码语言:javascript
复制
return PartialView("_PARTIALVIEW", usersAsIPagedList);
票数 3
EN

Stack Overflow用户

发布于 2014-12-22 12:08:30

您必须使用手动分页StaticPagedList,您必须修改SP以返回记录总数以及结果。

这是引用自"PagedList项目“网站的一个例子:

代码语言:javascript
复制
public class UserController : Controller
{
    public object Index(int? page)
    {
        var pageIndex = (page ?? 1) - 1; //MembershipProvider expects a 0 for the first page
        var pageSize = 10;
        int totalUserCount; // will be set by call to GetAllUsers due to _out_ paramter :-|

        var users = Membership.GetAllUsers(pageIndex, pageSize, out totalUserCount);
        var usersAsIPagedList = new StaticPagedList<MembershipUser>(users, pageIndex + 1, pageSize, totalUserCount);

        ViewBag.OnePageOfUsers = usersAsIPagedList;
        return View();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27600517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档