1.引入MvcPager.dll(MvcPager分页控件:http://www.webdiyer.com/mvcpager/)
2.后台C# Controller:
//Ddemo使用Webdiyer.MvcPager的分页方法
/// <summary>
/// 分页显示
/// 使用Webdiyer.MvcPager的分页方法Demo
/// </summary>
/// <param name="pageIndex">页码,第几页(从第一页开始),与前端声明的参数对应</param>
public ActionResult Index(int pageIndex = 1 )
{
//使用Webdiyer.MvcPager的ToPagedList()方法
//返回自定义的PagedList<Test>类型,而非.NET标准的List或Queryable类型
//会查两次数据库:1.总记录数。2.当页数量的记录
PagedList<Test> wholeData = db.Tests.OrderBy(t => t.Sno).ToPagedList(pageIndex, 5);
//视图的模型类型会不匹配而出错。即使修改视图头部的model声明也不行,因为使用了Webdiyer.MvcPager的Pager分页方法
//var wholeData = db.Tests.OrderBy(t => t.Sno).Skip((pageIndex - 1) * 5).Take(5);
return View(wholeData);
}
3.前端html:
@Html.Pager(Model, new PagerOptions
{ PageIndexParameterName = "pageIndex", //对应控制器参数
ShowPageIndexBox = true,
PageIndexBoxType = PageIndexBoxType.DropDownList,
ShowGoButton = false,
NumericPagerItemCount = 4
}
)
4.详见TestController\Index()方法。
1 public class TestController : Controller 2 { 3 TestContext db = new TestContext(); 4 5 //Ddemo使用Webdiyer.MvcPager的分页方法 6 /// <summary> 7 /// 分页显示 8 /// 使用Webdiyer.MvcPager的分页方法Demo 9 /// </summary> 10 /// <param name="pageIndex">页码,第几页(从第一页开始)</param> 11 public ActionResult Index(int pageIndex = 1 ) 12 { 13 //使用Webdiyer.MvcPager的ToPagedList()方法 14 //返回自定义的PagedList<Test>类型,而非.NET标准的List或Queryable类型 15 //会查两次数据库:1.总记录数。2.当页数量的记录 16 PagedList<Test> wholeData = db.Tests.OrderBy(t => t.Sno).ToPagedList(pageIndex, 5); 17 18 //视图的模型类型会不匹配而出错。即使修改视图头部的model声明也不行,因为使用了Webdiyer.MvcPager的Pager分页方法 19 //var wholeData = db.Tests.OrderBy(t => t.Sno).Skip((pageIndex - 1) * 5).Take(5); 20 return View(wholeData); 21 } 22 }