.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="/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等等),如下图:

在View中,PagedList还为我们提供了分页导航的样式。上面的<link href="/Content/PagedList.css" rel="stylesheet" type="text/css" />就是引入分页导航的样式。你安装了PagedList.Mvc会自动的放在你的Content中,这既是NuGet的好处了。当然你也可以自定义Css和引用其他的Css。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

例子下载:download

时间: 2024-10-07 10:41:00

.net mvc4 PagedList分页的相关文章

MVC4 5分页控件,支持Ajax AjaxOption支持

MVC4 5分页控件,支持Ajax AjaxOption支持 /// <summary> /// MVC4 5分页控件,支持Ajax AjaxOption支持 beta 1.0 /// 用法 /// @Ajax.Pages /// @Html.Pages /// </summary> public static class PagesExtension { public static MvcHtmlString Pages(this HtmlHelper htmlHelper, i

ASP.NET MVC利用PagedList分页(二)PagedList+Ajax+JsRender

(原文) 昨天在ASP.NET MVC利用PagedList分页(一)的 最后一节提到,一个好的用户体验绝对不可能是点击下一页后刷新页面,所以今天来说说利用Ajax+PagedList实现无刷新(个人绝对局部刷新更准确 些)的分页.其实在PagedList.Mvc中早已经为我们提供好了Ajax分页的各种东东,但是这里我要自己写下. 实现思想: 1.客户端发送Ajax请求.2.服务器端响应请求并将响应结果回传给客户端.3.客户端接收响应结果并进行数据绑定. 实现方案: 大多数人都知道这个思想,但是

ASP.NET MVC5 PagedList分页

ASP.NET MVC是目前ASP.NET开发当中轻量级的Web开发解决方案,在ASP.NET MVC概述这篇译文当中,已经详细的介绍了ASP.NET MVC与Web Forms的区别以及各自的适用场景.由于ASP.NET MVC尤其适合网站的开发(Web Forms更适合业务系统的开发),目前成为很多网站开发者的首先框架. 这里举个典型的例子(表格的分页),以此熟悉一下ASP.NET MVC的开发.开发环境:Windows 8.1企业版+VS2013旗舰版+SQL Server 2014. 首

Asp.net MVC 使用PagedList 分页

在asp.net mvc 中,可以bootstrap来作为界面,自己来写分页程序.也可以使用PagedList来分页 1.首先,在NuGet程序包管理控制台 ,输入Install-Package PagedList.mvc 安装PagedList 和PageList.Mvc;查看程序中的引用,已经有了PagedList,和PagedList.Mvc两个文件的引用 2.使用,下面是一个实现了分页.排序.查找.分页功能的例子.通过多设置一个查找变量参数来保存当时的查找字符串 currentFilte

ASP.NET MVC5 PagedList分页示例

ASP.NET MVC是目前ASP.NET开发当中轻量级的Web开发解决方案,在ASP.NET MVC概述这篇译文当中,已经详细的介绍了ASP.NET MVC与Web Forms的区别以及各自的适用场景.由于ASP.NET MVC尤其适合网站的开发(Web Forms更适合业务系统的开发),目前成为很多网站开发者的首先框架. 这里举个典型的例子(表格的分页),以此熟悉一下ASP.NET MVC的开发.开发环境:Windows 8.1企业版+VS2013旗舰版+SQL Server 2014. 首

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

前几天看见博客园上有人写ASP.NET MVC的分页思想,这让我不禁想起了PagedList.PagedList是NuGet上提供的一个分页的类库,能对任何IEnumerable<T>进行分页,而且非常简单好用.从NuGet上,可以获取两个DLL:PagedList.dll和PagedList.Mvc.dll.PagedList.dll提供分页的核心操作,PagedList.Mvc.dll是一个辅助类库,在创建分页的UI时候提供简单.可扩展的创建方法.不过PagedList.dll可以用于MV

MVC使用x.PagedList分页

MVC分页 1.Install Package Tools=> NuGet Package Manager=>Manager NuGet Packages of Solution 安装 X.PagedList和X.PagedList.MVC package.config文件:  <package id="X.PagedList" version="1.24.1.300" targetFramework="net45" />

asp.net 中使用 pagedlist 分页并具有查询功能的实现方法

用pagedlist在项目中做分页已N次了,今天再次用实例来实现一个带查询功能的分页例子. 1.在view代码: <div class="search"> <form method="post" action="/user/index"> <input placeholder="真实姓名" name="realname" /><button class="

.net MVC4 ajax分页技术实现

实现思路:利用MVC的PartialView实现局部内容异步加载. 实现过程 : 1,我的主列表页命名为List,访问URL为:/Test/List,control代码如下: public ActionResult List() { PagingSetting ps = GetPagingSeting(); ListPage<SYS_USER> list = new UserBLL().GetList(new Dictionary<string, object>(), ps); V