mvc PagedList分页:
PagedList是NuGet上提供的一个分页的类库,能对任何IEnumerable<T>进行分页,而且非常简单好用。从NuGet上,可以获取两个DLL:PagedList.dll和PagedList.Mvc.dll。PagedList.dll提供分页的核心操作,PagedList.Mvc.dll是一个辅助类库,在创建分页的UI时候提供简单、可扩展的创建方法。不过PagedList.dll可以用于MVC2及其以上,但是PagedList
.Mvc.dll只能用于MVC3(及其以上)。
1、新建项目。
2、配置model。参考这里:mvc model 配置
联机搜索PagedList.Mvc,安装。(如果没有安装Nuget,可以到下面地址下载:http://www.nuget.org/)
NuGet的好处就是我们不用再进行web.config等各种复杂的配置,所以下面直接编码:
4、新建一个Controllers。
...
using MvcPageTest.Models;
using PagedList;
namespace MvcPageTest.Controllers
{
public class HomeController : Controller
{
private TestEntities db = new TestEntities();
// GET: /Home/
public ActionResult Index(int page = 1)
{
ViewData["page"] = page;
var test = NewsPage(page);
return View(test);
}
#region PagedList.IPagedList NewsPage(int page)
/// <summary>
///
/// </summary>
/// <param name="page">页码</param>
/// <returns></returns>
public PagedList.IPagedList NewsPage(int page)
{
int pageSize = 10;
var test = (from t in db.tests orderby t.id select t).ToPagedList((int)page, pageSize);
return test;
}
#endregion
}
}5、新建一个View。@model PagedList.IPagedList<MvcPageTest.Models.test>
@using PagedList.Mvc;
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<link href="/Content/PagedList.css" rel="stylesheet" type="text/css" />
<title>Mvc分页例子</title>
<style type="text/css">
body{ font-size: 12px; font-family: "微软雅黑"; color: #555; position: relative; background: #fff;}
a{ text-decoration: none; color: #555;}
#tbList{ border: 1px solid #0094ff; width: 800px; margin: 10px auto; border-collapse: collapse;}
#tbList th, td{ border: 1px solid #0094ff; padding: 5px; }
</style>
</head>
<body>
<div style="text-align: center;">
<h1>Mvc分页例子</h1>
<table id="tbList">
<tbody>
@if (Model.Count() != 0)
{
<tr>
<th style="width: 60px;">id</th>
<th style="width: 150px;">pnamec</th>
<th style="width: 200px;">pnamee</th>
<th style="width: 150px;">ccodes</th>
<th style="width: 80px;">pcodes</th>
</tr>
foreach (var a in Model)
{
<tr style="text-align: center;">
<td>@a.id</td>
<td>@a.pnamec</td>
<td>@a.pnamee</td>
<td>@a.ccodes</td>
<td>@a.pcodes</td>
</tr>
}
<tr>
<td colspan="5">
<div class="pager">
@if (Model != null)
{
<span style="height: 20px; line-height: 20px;">共 @Model.TotalItemCount.ToString() 条记录,当前第 @ViewData["page"] 页/共 @Model.PageCount 页 </span>
@Html.PagedListPager(Model, page => Url.Action("Index", new { page }), new PagedListRenderOptions() { LinkToFirstPageFormat = "首页", LinkToNextPageFormat = "下一页", LinkToPreviousPageFormat = "上一页", LinkToLastPageFormat = "末页", DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 3 })
}
</div>
</td>
</tr>
}
</tbody>
</table>
</div>
</body>
</html>
一句简单的ToPageList就会返回一个强类型的PagedList.PagedList<T>对象,而且PagedList.PagedList<T>实现了IPagedList接口,通过对象浏览器我们可以看到IPagedList提供了很多方法和属性供我们在View绑定时候使用(例如HasPreviousPage、HasNextPage、PageCount、PageNumer等等),如下图:
例子下载:download
原文:http://blog.csdn.net/ycwol/article/details/42388175