首页 > 代码库 > .net mvc4 PagedList分页

.net mvc4 PagedList分页

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 配置

3、安装PagedList。
引入NuGet程序包: 工具》库程序包管理器》NuGet程序包。
技术分享

联机搜索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=http://www.mamicode.com/"/Content/PagedList.css" rel="stylesheet" type="text/css" />> 一句简单的ToPageList就会返回一个强类型的PagedList.PagedList<T>对象,而且PagedList.PagedList<T>实现了IPagedList接口,通过对象浏览器我们可以看到IPagedList提供了很多方法和属性供我们在View绑定时候使用(例如HasPreviousPage、HasNextPage、PageCount、PageNumer等等),如下图:
技术分享
在View中,PagedList还为我们提供了分页导航的样式。上面的<link href=http://www.mamicode.com/"/Content/PagedList.css" rel="stylesheet" type="text/css" />就是引入分页导航的样式。你安装了PagedList.Mvc会自动的放在你的Content中,这既是NuGet的好处了。当然你也可以自定义Css和引用其他的Css。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------

技术分享

例子下载:download

.net mvc4 PagedList分页