1.nuget下载PagedList包
2.PageListHelper类:
using PagedList;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ClothMvcApp.Helper
{
public class PageListHelper<T>
{
public IPagedList<T> PageList { get; set; }
public string Controller { get; set; }
public string Action { get; set; }
public string Key { get; set; }
}
}
3.创建一个部分页_PagedListPartial.cshtml
<div class="page-box">
@{
int pageIndex = 1;
int pageSize = 1;
if (Model.PageList != null)
{
pageIndex = Model.PageList.PageNumber;
pageSize = Model.PageList.PageSize;
<span>共<span style="color:orange;font-weight:bold;">@Model.PageList.TotalItemCount</span>条 共<span style="color: orange; font-weight: bold;">@Model.PageList.PageCount</span>页</span>
<a href="@Url.Action(Model.Action, Model.Controller, new { pageIndex = 1,pageSize=Model.PageList.PageSize,key=Model.Key })">首页</a>
if (Model.PageList.HasPreviousPage)
{
<a href="@Url.Action(Model.Action, Model.Controller, new { pageIndex = (Model.PageList.PageNumber - 1), pageSize = Model.PageList.PageSize, key = Model.Key })">上一页</a>
}
<select onchange="changePageSize(this)" style="width:70px;">
@{
for (int i = 1; i <= 10; i++)
{
<option value="@(i*5)" @(Model.PageList.PageSize == i*5 ? "selected" : "")>@(i*5)</option>
}
}
</select>
if (Model.PageList.HasNextPage)
{
<a href="@Url.Action(Model.Action, Model.Controller, new { pageIndex = (Model.PageList.PageNumber + 1), pageSize = Model.PageList.PageSize, key = Model.Key })">下一页</a>
}
<a href="@Url.Action(Model.Action, Model.Controller, new { pageIndex = Model.PageList.PageCount, pageSize = Model.PageList.PageSize, key = Model.Key })">末页</a>
}
}
</div>
<script type="text/javascript">
function changePageSize(obj)
{
var pageSize = obj.value;
window.location = "/Admin/@Model.Controller/@Model.Action?pageIndex=@pageIndex&pageSize="+pageSize+"&key=@Model.Key"
}
function search() {
var key = document.getElementById("key").value;
window.location = "/Admin/@Model.Controller/@Model.Action?pageIndex=1&pageSize=@pageSize&key=" + key;
}
</script>
4.Index页面调用:
@using ClothMvcApp.EF;
@using ClothMvcApp.Helper;
@{
Layout = null;
var list = ViewBag.data as PagedList.IPagedList<ClothMvcApp.EF.Product>;
}
@Html.Partial("_PagedListPartial", new PageListHelper<ClothMvcApp.EF.Product>() { Controller = "Cloth", Action = "Index", Key = ViewBag.key, PageList = list })