我使用的MVC PagedList。 一切工作正常,但情况是这样的。
从存储过程加载数据。
因此,当一个检索条件满足SP返回200条记录,分页是这样1 2 3 4 ..(实际想情形),这是按预期工作和每页20。
但是,当需求变化
当第1次点击获取20条,第2页获得20条等(从数据库每次点击)..所以初始加载SP将只返回20条记录,而不是实际的(200条)只有一个分页第1页出现
但我们知道实际的200条分页应该是第1页第2页第3失败。 所以分页时只有20条记录,而不是实际数量,即200创建。
是的解决办法是SP收益作为总输出200条记录,所以我知道一共有多少条记录,但如何覆盖Html.PagedListPager显示1 2 3 ?????
提前致谢
是的StaticPagedList服务的目的。
需要一些改动如下:
var usersAsIPagedList = new StaticPagedList<CLASSNAME>(LIST, PAGEINDEX, PAGESIZE, TOTALCOUNT);
这里是TOTALCOUNT 200为您的例子。
虽然返回视图确保返回usersAsIPagedList而不是usersAsIPagedList.ToPagedList
return PartialView("_PARTIALVIEW", usersAsIPagedList);
您必须使用手动分页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();
}
}