我在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?
提前感谢
发布于 2014-12-23 04:09:51
是的,StaticPagedList达到了目的。
所需的改动不多:
var usersAsIPagedList = new StaticPagedList<CLASSNAME>(LIST, PAGEINDEX, PAGESIZE, TOTALCOUNT);这里的TOTALCOUNT是你的例子的200。
在返回视图时,请确保返回usersAsIPagedList而不是usersAsIPagedList.ToPagedList
return PartialView("_PARTIALVIEW", usersAsIPagedList);发布于 2014-12-22 12:08:30
您必须使用手动分页StaticPagedList,您必须修改SP以返回记录总数以及结果。
这是引用自"PagedList项目“网站的一个例子:
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();
}
}https://stackoverflow.com/questions/27600517
复制相似问题