ASP.NET MVC 4使用PagedList.Mvc分页

来源:互联网 发布:linux ssh安装失败 编辑:程序博客网 时间:2024/06/07 07:57

ASP.NET MVC 4使用PagedList.Mvc分页

  ASP.NET MVC中进行分页的方式有多种,在NuGet上有提供使用PagedList、PagedList.Mvc进行分页。

  1. 通过NuGet引用PagedList.Mvc

  在安装引用PagedList.Mvc的同时会安装引用PagedList。

  2. PagedList.Mvc基本使用

  ProvinceController.cs:

复制代码
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using MvcExample.Models;using PagedList;namespace MvcExample.Controllers{    public class ProvinceController : Controller    {        private MvcExampleContext ctx = new MvcExampleContext();        public ActionResult Index(int page = 1)        {            return View(ctx.Provinces.OrderBy(p => p.ProvinceID).ToPagedList(page, 10));        }        protected override void Dispose(bool disposing)        {            ctx.Dispose();            base.Dispose(disposing);        }    }}
复制代码

  Index.cshtml:

复制代码
@model PagedList.IPagedList<MvcExample.Models.Province>@using PagedList.Mvc;@{    Layout = null;}<!DOCTYPE html><html><head>    <meta name="viewport" content="width=device-width" />    <title>Index</title>    <style type="text/css">        ul.pagination        {            margin: 0;        }        .pagination li        {            list-style-type: none;            float: left;            min-width: 15px;        }    </style></head><body>    <table>        <tr>            <th>                省份ID            </th>            <th>                省份编号            </th>            <th>                省份名称            </th>        </tr>        @foreach (var item in Model)        {            <tr>                <td>                    @Html.DisplayFor(modelItem => item.ProvinceID)                </td>                <td>                    @Html.DisplayFor(modelItem => item.ProvinceNo)                </td>                <td>                    @Html.DisplayFor(modelItem => item.ProvinceName)                </td>            </tr>        }    </table>    @Html.PagedListPager(Model, page => Url.Action("Index", new { page }))</body></html>
复制代码

  运行效果:

  引入PagedList.Mvc分页之后生成的分页Html代码:

   分页执行的SQL语句:

复制代码
SELECT TOP (10)     [Extent1].[ProvinceID] AS [ProvinceID],     [Extent1].[ProvinceNo] AS [ProvinceNo],     [Extent1].[ProvinceName] AS [ProvinceName]    FROM ( SELECT [Extent1].[ProvinceID] AS [ProvinceID], [Extent1].[ProvinceNo] AS [ProvinceNo], [Extent1].[ProvinceName] AS [ProvinceName], row_number() OVER (ORDER BY [Extent1].[ProvinceID] ASC) AS [row_number]        FROM [dbo].[Province] AS [Extent1]    )  AS [Extent1]    WHERE [Extent1].[row_number] > 10    ORDER BY [Extent1].[ProvinceID] ASC
复制代码

 

  参考资料:

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application

0 0
原创粉丝点击