2012-07-09 112 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