I cannot get the pager to work for my ListUsers page. The method in my controller looks like:
public ActionResult ListUsers(int? page, int? pageSize) {
int totalItems;
var members = Membership.GetAllUsers(page ?? 1, pageSize ?? 50, out totalItems);
ViewData["Users"] = ToList<MembershipUser>(members);
return View();
}
And my aspx page has the following looks like:
<% var users = ViewData["Users"] as List<MembershipUser>; %>
<% foreach( var user in users ){ %>
Email is: <%= user.Email %>
<% } %>
<%= Html.Pager((IPagination)ViewData["Users"])%>
I get the error
“Unable to cast object of type ‘System.Collections.Generic.List`1[System.Web.Security.MembershipUser]’ to type ‘MvcContrib.Pagination.IPagination’.”
What am I doing wrong?
I am not using Html.Grid within my view. I got it to work, but not sure if this is the best way code. Here it is:
(my controller)
int totalItems;
var members = Membership.GetAllUsers(page ?? 0, pageSize ?? 50, out totalItems);
ViewData["Users"] = ToList(members);
// a second variable
var members2 = Membership.GetAllUsers();
ViewData["Users2"] = ToList(members2).AsPagination(page ?? 1, 50);
return View();
}
(my view)
<% foreach( var user in users ){ %>
UserName: <%= user.UserName %>
Email: <%= user.Email %>
<% } %>
//the pager
<%= Html.Pager("Users2")%>
Update: Paging is off by 1. Clicking "next" from the default page will skip a page. How do I fix this? The .AsPagination() method does not accept 0 AND starting .GetAllUsers() at 1 will not show the actual first page.