• .net mvc 分页


     1         public static MvcHtmlString PageControl(this HtmlHelper html, PageData page)
     2         {
     3             if (page == null || page.totalpage == 0)
     4                 return MvcHtmlString.Create(string.Empty);
     5 
     6             page.pageindex = page.pageindex < 1 ? 1 : page.pageindex;
     7             string url = HttpContext.Current.Request.Url.ToString();
     8             if (url.IndexOf('#') > -1)
     9                 url = url.Substring(0, url.IndexOf('#'));
    10 
    11             StringBuilder sb = new StringBuilder();
    12             sb.Append("<div class='paging-toolbar'>");
    13             sb.Append("<ul class='pagination'>");
    14             #region 首页
    15             if (page.totalpage > 1)
    16                 sb.Append("<li><a href='" + GetUrl(url, 1) + "'>首页</a></li>");
    17             #endregion
    18 
    19             #region 上一页
    20             if (page.pageindex > 1)
    21                 sb.Append("<li><a href='" + GetUrl(url, page.pageindex - 1) + "'>上一页</a></li>");
    22             #endregion
    23 
    24             #region 中间和当前页
    25             var half = page.count % 2 == 0 ? page.count / 2 : page.count / 2 + 1; // 展示页一半
    26             var leng = page.count;
    27             if (page.count > page.totalpage) leng = page.totalpage;
    28 
    29             if (page.pageindex > page.totalpage - leng + half)
    30             {
    31                 for (int i = page.totalpage - leng + 1; i <= page.totalpage; i++)
    32                 {
    33                     if (i == page.pageindex)
    34                     {
    35                         sb.Append("<li class='active'><a href='" + GetUrl(url, page.pageindex) + "'>" + page.pageindex + "</a></li>");
    36                     }
    37                     else
    38                     {
    39                         sb.Append("<li><a href='" + GetUrl(url, i) + "'>" + i + "</a></li>");
    40                     }
    41                 }
    42             }
    43             else
    44             {
    45                 for (int i = 1; i <= leng; i++)
    46                 {
    47                     if (i == half)
    48                     {
    49                         sb.Append("<li class='active'><a href='" + GetUrl(url, page.pageindex) + "'>" + page.pageindex + "</a></li>");
    50                     }
    51                     else
    52                     {
    53                         var p = page.pageindex - half + i;
    54                         if (p > 0)
    55                             sb.Append("<li><a href='" + GetUrl(url, p) + "'>" + p + "</a></li>");
    56                         else
    57                             leng += 1;
    58                     }
    59                 }
    60             }
    64             #endregion
    65 
    66             #region 下一页
    67             if (page.pageindex < page.totalpage)
    68                 sb.Append("<li><a href='" + GetUrl(url, page.pageindex < 2 ? 2 : page.pageindex + 1) + "'>下一页</a></li>");
    69             #endregion
    70 
    71             #region 末页
    72             if (page.totalpage > 1)
    73                 sb.Append("<li><a href='" + GetUrl(url, page.totalpage) + "'>末页</a></li>");
    74             #endregion
    75 
    76             sb.Append("</ul>");
    77             sb.Append("</div>");
    78 
    79             return MvcHtmlString.Create(sb.ToString());
    80         }
     1     public class PageData
     2     {
     3         /// <summary>
     4         /// 展示的页数
     5         /// </summary>
     6         public int count { get; set; }
     7 
     8         /// <summary>
     9         /// 当前页
    10         /// </summary>
    11         public int pageindex { get; set; }
    12 
    13         /// <summary>
    14         /// 总页数
    15         /// </summary>
    16         public int totalpage { get; set; }
    17 
    18         /// <summary>
    19         /// 总条数
    20         /// </summary>
    21         public int totalrecord { get; set; }
    22     }
  • 相关阅读:
    Kubernetes源码client-go的workqueue
    (转)Golang语言heap剖析及利用heap实现优先级队列
    (转)Kubernetes GC设计原则
    Kubernetes kubefed使用Cluster Selector
    使用kubeadm添加新节点到集群及相关问题解决
    Kubeadm颁发证书延迟到10年
    kubeadm升级Kubernetes证书
    混合kubebuilder与code generator编写CRD
    (转)Go项目的vendor目录是否需要提交?看这一篇就知道了
    Java 将Excel转为et和ett格式
  • 原文地址:https://www.cnblogs.com/foggy2330/p/10265247.html
Copyright © 2020-2023  润新知