• .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     }
  • 相关阅读:
    学习es6中class——整合阮一峰教程、MDN
    flex 整理 笔记
    面试题中常见的布局类问题总结
    跨域问题的总结
    js中函数传递参数,究竟是值传递还是引用传递?
    webpack 从入门到放弃
    浏览器的解析和执行过程
    Office Online Server – FILE TOO LARGE
    PowerShell中汉字与ASCII码相互转换
    查询SQLSERVER执行过的SQL记录(历史查询记录)
  • 原文地址:https://www.cnblogs.com/foggy2330/p/10265247.html
Copyright © 2020-2023  润新知