zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Linux显示文件内容常用命令
    Linux文件权限和更改权限
    数据存储及恢复的基本原理
    使用jemter发送HTTPS请求
    运行Jmeter时,出现java.util.prefs.WindowsPreferences <init>异常警告
    Server08AD域安装以及推送
    SVN服务器和客户端搭建
    selenium常见操作
    TestNG 入门教程
    ant+TestNG-xslt生成selenium测试报告
  • 原文地址:https://www.cnblogs.com/libingql/p/3486554.html
Copyright © 2011-2022 走看看