mvc 分页PagedList简单使用

1.nuget下载PagedList包

 

2.PageListHelper类:

复制代码
using PagedList;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ClothMvcApp.Helper
{
    public class PageListHelper<T>
    {
        public IPagedList<T> PageList { get; set; }

        public string Controller { get; set; }

        public string Action { get; set; }

        public string Key { get; set; }
    }
}
复制代码

3.创建一个部分页_PagedListPartial.cshtml

复制代码
<div class="page-box">
    @{

    int pageIndex = 1;
    int pageSize = 1;

    if (Model.PageList != null)
    {
        pageIndex = Model.PageList.PageNumber;

        pageSize = Model.PageList.PageSize;

        <span><span style="color:orange;font-weight:bold;">@Model.PageList.TotalItemCount</span>&nbsp;&nbsp;<span style="color: orange; font-weight: bold;">@Model.PageList.PageCount</span></span>

             <a href="@Url.Action(Model.Action, Model.Controller, new { pageIndex = 1,pageSize=Model.PageList.PageSize,key=Model.Key })">首页</a>

            if (Model.PageList.HasPreviousPage)
            {
                <a href="@Url.Action(Model.Action, Model.Controller, new { pageIndex = (Model.PageList.PageNumber - 1), pageSize = Model.PageList.PageSize, key = Model.Key })">上一页</a>
            }
            
             <select onchange="changePageSize(this)" style="width:70px;">
                @{
                    for (int i = 1; i <= 10; i++)
                    {
                        <option value="@(i*5)" @(Model.PageList.PageSize == i*5 ? "selected" : "")>@(i*5)</option>
                    }
                }
            </select>
        

            if (Model.PageList.HasNextPage)
            {
                <a href="@Url.Action(Model.Action, Model.Controller, new { pageIndex = (Model.PageList.PageNumber + 1), pageSize = Model.PageList.PageSize, key = Model.Key })">下一页</a>
            }


            <a href="@Url.Action(Model.Action, Model.Controller, new { pageIndex = Model.PageList.PageCount, pageSize = Model.PageList.PageSize, key = Model.Key })">末页</a>
        }
    }
  
</div>

<script type="text/javascript">

    function changePageSize(obj)
    {
        var pageSize = obj.value;
        window.location = "/Admin/@Model.Controller/@Model.Action?pageIndex=@pageIndex&pageSize="+pageSize+"&key=@Model.Key"

    }

    function search() {
        var key = document.getElementById("key").value;
        window.location = "/Admin/@Model.Controller/@Model.Action?pageIndex=1&pageSize=@pageSize&key=" + key;

    }

</script>
复制代码

4.Index页面调用:

@using ClothMvcApp.EF;
@using ClothMvcApp.Helper;
@{
    Layout = null;
    var list = ViewBag.data as PagedList.IPagedList<ClothMvcApp.EF.Product>;
}
 @Html.Partial("_PagedListPartial", new PageListHelper<ClothMvcApp.EF.Product>() { Controller = "Cloth", Action = "Index", Key = ViewBag.key, PageList = list })

 

posted @   大空白纸  阅读(2446)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示