• 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="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 })
  • 相关阅读:
    20111013 18:32 女友刁钻无聊问题之标准答案
    20111013 17:40 学ACM有什么用
    typedef用法(1)
    深入C++的new(20111115 15:08 )
    用四个0算二十四点
    20111010 20:14 HDU 4021 (15数码)
    pku3020 Antenna Placement (解法1)
    C++箴言:理解typename的两个含义
    20110907 00:16 ubuntu 如何修改当前用户名
    vc6.0中添加msdn 20111105 11:52
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/5680971.html
Copyright © 2020-2023  润新知