• MVC分页


      1 using System.Text;
      2 
      3 namespace CommonFuns
      4 {
      5     public class Paging
      6     {
      7         public static string IndexHtml(int recordCount, int pageCount, int pageIndex, string keyStr, int pageSize)
      8         {
      9             return IndexHtml(recordCount, pageCount, pageIndex, keyStr, pageSize, false);
     10         }
     11 
     12         public static string IndexHtml(int recordCount, int pageCount, int pageIndex, string keyStr, int pageSize, bool isInput)
     13         {
     14             return IndexHtml(recordCount, pageCount, pageIndex, keyStr, pageSize, isInput, string.Empty);
     15         }
     16 
     17         /// <summary>
     18         /// 分页方法
     19         /// </summary>
     20         /// <param name="recordCount">总记录数</param>
     21         /// <param name="pageCount">总页数</param>
     22         /// <param name="pageIndex">当前页</param>
     23         /// <param name="keyStr">查询关键字</param>
     24         /// <param name="pageSize">页内记录数目</param>
     25         /// <param name="isInput">是否跳页</param>
     26         /// <param name="pagePath">页链接</param>
     27         /// <returns></returns>
     28         public static string IndexHtml(int recordCount, int pageCount, int pageIndex, string keyStr, int pageSize, bool isInput, string pagePath)
     29         {
     30             if (!string.IsNullOrEmpty(keyStr))
     31             {
     32                 if (!keyStr.StartsWith("&"))
     33                 {
     34                     keyStr = "&" + keyStr;
     35                 }
     36             }
     37             StringBuilder sb = new StringBuilder();
     38             sb.Append("<div class='pageIndex'><ul><li>");
     39             sb.Append($"<span class='d0'>总计:{recordCount} 条 ,每页显示{pageIndex}条,第 {pageSize} 页</span>");
     40 
     41             #region 首页 上一页
     42 
     43             if (pageIndex == 1)
     44             {
     45                 sb.Append("<span class='d' style='color:#bfbfbf'>首页</span>");
     46                 sb.Append("<span  class='d2' style='color:#bfbfbf'>上一页</span>");
     47             }
     48             else
     49             {
     50                 sb.Append($"<span class='d'><a href='{pagePath}?page=1{keyStr}'>首页</a></span>");
     51                 sb.Append($"<span  class='d2'><a href='{pagePath}?page={pageIndex - 1}{keyStr}'>上一页</a></span>");
     52             }
     53 
     54             #endregion
     55 
     56             #region 数字导航
     57 
     58             int startId = 1, endId = 1;
     59             startId = pageIndex - 3;
     60             endId = pageIndex + 4;
     61             startId = startId < 1 ? 1 : startId;
     62             endId = endId > pageCount ? pageCount : endId;
     63 
     64             for (int i = startId; i <= endId; i++)
     65             {
     66                 if (i == pageIndex)
     67                 {
     68                     sb.Append($"<span class='d3'><a href='{pagePath}?page={i}{keyStr}'>{i}</a></span>");
     69                 }
     70                 else
     71                 {
     72                     sb.Append($"<span class='d4'><a href='{pagePath}?page={i}{keyStr}'>{i}</a></span>");
     73                 }
     74             }
     75 
     76             #endregion
     77 
     78             #region 下一页 尾页
     79 
     80             if (pageIndex == pageCount || pageCount == 0)
     81             {
     82                 sb.Append("<span class='d2' style='color:#bfbfbf'>下一页</span>");
     83                 sb.Append("<span class='d' style='color:#bfbfbf'>尾页</span>");
     84             }
     85             else
     86             {
     87                 sb.Append($"<span class='d2'><a href='{pagePath}?page={pageIndex + 1}{keyStr}'>下一页</a></span>");
     88                 sb.Append($"<span class='d'><a href='{pagePath}?page={pageCount}{keyStr}'>尾页</a></span>");
     89             }
     90 
     91             #endregion
     92 
     93             #region 跳到某一页
     94 
     95             if (isInput)
     96             {
     97                 sb.Append($"<input id='cptext' type='text' value='{pageIndex}'  />&nbsp;<input id='btnGo' url='{keyStr}' value='Go' type='button'/>");
     98             }
     99 
    100             #endregion
    101 
    102             sb.Append("</li></ul>");
    103             sb.Append("</div>");
    104 
    105             return sb.ToString();
    106         }
    107     }
    108 }

    Controller页面

     1 public ActionResult Index(int? page, string key)
     2 {
     3     BreakPage pageQuery = new BreakPage();
     4     pageQuery.PageIndex = page ?? 1;
     5     pageQuery.PageSize = 5;
     6     string urlParameters = string.Empty;
     7     if (!string.IsNullOrEmpty(key))
     8     {
     9         urlParameters += string.Format("&key={0}", Url.Encode(key));
    10 
    11     }
    12     ViewBag.PageIndexHtml = Paging.IndexHtml(pageQuery.TotalItems, pageQuery.TotalPages, pageQuery.PageIndex, urlParameters, pageQuery.PageSize);
    13     return View();
    14 }

    BreakPage类

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Text;
      5 
      6 namespace CommonFuns
      7 {
      8     /// <summary>
      9     /// 分页信息
     10     /// </summary>
     11     public class BreakPage
     12     {
     13 
     14         /// <summary>
     15         /// 默认PageSize=10
     16         /// </summary>
     17         public BreakPage()
     18         {
     19             this.mPageIndex = 1;
     20             this.mPageSize = 10;
     21         }
     22         /// <summary>
     23         /// 
     24         /// </summary>
     25         /// <param name="pageSize"></param>
     26         public BreakPage(int pageSize)
     27         {
     28             this.mPageSize = pageSize;
     29         }
     30 
     31         /// <summary>
     32         /// 分页构造函数【两个参数版】
     33         /// </summary>
     34         /// <param name="PageIndex">页码</param>
     35         /// <param name="PageSize">页面大小</param>
     36         public BreakPage( int PageIndex, int PageSize )
     37         {
     38             this.mPageIndex = PageIndex;
     39             this.mPageSize = PageSize;
     40         }
     41 
     42 
     43 
     44         private int mPageIndex;
     45         /// <summary>
     46         /// 当前页码
     47         /// </summary>
     48         public int PageIndex
     49         {
     50             set { mPageIndex = value; }
     51             get
     52             {
     53                 return mPageIndex < 1 ? 1 : mPageIndex;
     54             }
     55         }
     56 
     57         private int mPageSize;
     58         /// <summary>
     59         /// 每页大小
     60         /// </summary>
     61         public int PageSize
     62         {
     63             set { mPageSize = value; }
     64             get
     65             {
     66                 return mPageSize < 1 ? 10 : mPageSize;
     67             }
     68         }
     69 
     70         private int mTotalItems;
     71         /// <summary>
     72         /// 符合条件总记录条数
     73         /// </summary>
     74         public int TotalItems
     75         {
     76             get { return mTotalItems; }
     77             set
     78             {
     79                 mTotalItems = value;
     80             }
     81         }
     82 
     83         private string mFilter;
     84         /// <summary>
     85         /// 筛选条件
     86         /// </summary>
     87         public string Filter
     88         {
     89             get { return mFilter; }
     90             set { mFilter = value; }
     91         }
     92 
     93         /// <summary>
     94         /// 符合条件总页数
     95         /// </summary>
     96         public int TotalPages
     97         {
     98             get
     99             {
    100                 return (int)(mPageSize == 0 ? 0 : Math.Ceiling(TotalItems / (double)mPageSize));
    101             }
    102         }
    103 
    104         private bool mIsAsc;
    105         /// <summary>
    106         /// 是否升序
    107         /// </summary>
    108         public bool IsAsc
    109         {
    110             get
    111             {
    112                 return mIsAsc;
    113             }
    114             set
    115             {
    116                 mIsAsc = value;
    117             }
    118         }
    119 
    120         private string mOrderExpression;
    121         /// <summary>
    122         /// 排序表达式
    123         /// </summary>
    124         public string OrderExpression
    125         {
    126             get
    127             {
    128                 return mOrderExpression;
    129             }
    130             set
    131             {
    132                 mOrderExpression = value;
    133             }
    134         }
    135 
    136     }
    137 }

    cshtml页面调用

    1 @Html.Raw(ViewBag.PageIndexHtml)
  • 相关阅读:
    iOS真机测试中出现dyld`dyld_fatal_error错误
    给WKWebView添加进度条(swift)
    手机号、密码正则判断
    Xcode8 上架前属性列表添加权限
    系统定位
    修改UISearchBar的背景颜色
    iOS 给NSString文字上添加横线 中间和下划线
    iOS UISearchBar 设置取消按钮,回收键盘,并修改cancel为“取消”
    iOS 支付宝第三方使用步骤
    UIImagePickerController和UIAlertController结合使用
  • 原文地址:https://www.cnblogs.com/wangyulong/p/6769362.html
Copyright © 2020-2023  润新知