堂堂88 发表于 2012-12-10 14:14:42

ASP.NET MVC利用PagedList分页(一)

<div id="cnblogs_post_body">  前几天看见博客园上有人写ASP.NET 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(及其以上)。
  使用PagedList:
    (一)、安装PagedList:引用-->Add Library Package Reference--->OnLine All--->搜索PagedList,点击Install安装。(如果没有安装Nuget,可以到下面地址下载:http://www.nuget.org/)
    (二)、NuGet的好处就是我们不用再进行web.config等各种复杂的配置,所以下面直接编码:
<div class="cnblogs_code">using PagedList;.....//Controller:PersonControllerpublic ViewResult Index(int? page){    int pageNumber = page ?? 1;    int pageSize = 2;    var persons = db.Persons.ToList();    return View(persons.ToPagedList(pageNumber, pageSize));}......//View:Views/Person/Index
@model PagedList.PagedList<XXX.Person>......<div>Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber)of @Model.PageCount@if (Model.HasPreviousPage){@Html.ActionLink("<<", "Index", new { Page = 1 })@Html.Raw(" ")@Html.ActionLink("< Prve", "Index", new { Page = Model.PageNumber - 1 })}else{@:<<@Html.Raw(" ")@:< Prev}@Html.Raw(" ")@if (Model.HasNextPage){@Html.ActionLink("Next >", "Index", new { Page = Model.PageNumber + 1 })@Html.Raw(" ")@Html.ActionLink(">>", "Index", new { Page = Model.PageCount })}else{@:Next>@Html.Raw(" ")@:>>}</div>
页: [1]
查看完整版本: ASP.NET MVC利用PagedList分页(一)