2012-07-09 71 views
1

我正在使用ASP.NET会员的PagedList.mvc帮助程序在表中显示应用程序用户详细信息。寻呼机使用Membership.GetAllUsers()方法正常工作,但我希望能够利用返回单页数据而不是整个表的过载,如this article中所建议的那样:mvc pagedlist asp.net membership

 int pageSize = int.Parse(ConfigurationManager.AppSettings["gridPageSize"]); 
     int totalRecords; 
     IEnumerable<MembershipUser> users = Membership.GetAllUsers((page ?? 0), pageSize, out totalRecords).Cast<MembershipUser>(); 
     return View(users.ToPagedList((page ?? 1), pageSize)); 

上面的代码使用了有问题的重载,但不幸的是只显示了第一页数据,并且没有提供第二页或后续页面的链接。看起来这是因为PagedList助手根据传递给它的集合的大小来配置它自己,而不是实际的表大小(可从GetAllUsers(int,out int)的输出参数中获得)

是否有人知道的办法解决这明显限制

回答

1

使用StaticPagedList,每PagedList README的例2:

https://github.com/troygoode/pagedlist#example-2-manual-paging

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

完美,谢谢。 – 2012-07-13 10:02:33