c# MVC分页控件帮助类

 

c# 使用mvc 分页控件

   /// <summary>
   /// 获得伪静态页码显示链接
   /// </summary>
   /// <param name="curPage">当前页数</param>
   /// <param name="countPage">总页数</param>
   /// <param name="url">超级链接地址</param>
   /// <param name="extendPage">周边页码显示个数上限</param>
   /// <returns>页码html</returns>
   public static string GetStaticPageNumbers(int curPage, int countPage, string url, int extendPage)
   {
       int startPage = 1;
       int endPage = 1;

       string t1 = "<a title=\"首页\" href=\"" + string.Format(url, "1") + "\">首页</a><a title=\"上一页\" href=\"" + string.Format(url, (curPage - 1)) + "\">上一页</a>";
       string t2 = "<a title=\"下一页\" href=\"" + string.Format(url, (curPage + 1)) + "\">下一页</a><a title=\"尾页\" href=\"" + string.Format(url, countPage) + "\">尾页</a>";

       if (countPage < 1) countPage = 1;
       if (extendPage < 3) extendPage = 2;

       if (countPage > extendPage)
       {
           if (curPage - (extendPage / 2) > 0)
           {
               if (curPage + (extendPage / 2) < countPage)
               {
                   startPage = curPage - (extendPage / 2);
                   endPage = startPage + extendPage - 1;
               }
               else
               {
                   endPage = countPage;
                   startPage = endPage - extendPage + 1;
                   t2 = "<a title=\"下一页\" class=\"disabled next\" href=\"javascript:;\">下一页</a><a class=\"disabled end\" title=\"尾页\" href=\"javascript:;\">尾页</a>";
               }
           }
           else
           {
               endPage = extendPage;
               t1 = "<a title=\"首页\" class=\"disabled begin\" href=\"javascript:;\">首页</a><a class=\"disabled previou\" title=\"上一页\" href=\"javascript:;\">上一页</a>";
           }
       }
       else
       {
           startPage = 1;
           endPage = countPage;
           t1 = "<a title=\"首页\" class=\"disabled begin\" href=\"javascript:;\">首页</a><a class=\"disabled previou\" title=\"上一页\" href=\"javascript:;\">上一页</a>";
           t2 = "<a title=\"下一页\" class=\"disabled next\" href=\"javascript:;\">下一页</a><a class=\"disabled end\" title=\"尾页\" href=\"javascript:;\">尾页</a>";
       }

       if (curPage == 1 && curPage != endPage)
       {
           t2 = "<a title=\"下一页\" class=\"next\" href=\"" + string.Format(url, (curPage + 1)) + "\">下一页</a><a class=\"end\" title=\"尾页\" href=\"" + string.Format(url, countPage) + "\">尾页</a>";
       }
       else if (curPage < endPage && curPage != 1)
       {
           t2 = "<a title=\"下一页\" class=\"next\" href=\"" + string.Format(url, (curPage + 1)) + "\">下一页</a><a class=\"end\" title=\"尾页\" href=\"" + string.Format(url, countPage) + "\">尾页</a>";
       }

       if (curPage > 1 && curPage != endPage)
       {
           t1 = "<a title=\"首页\" class=\"begin\" href=\"" + string.Format(url, "1") + "\">首页</a><a class=\"previou\" title=\"上一页\" href=\"" + string.Format(url, (curPage - 1)) + "\">上一页</a>";
       }
       else if (curPage == endPage && curPage != 1)
       {
           t1 = "<a title=\"首页\" class=\"begin\" href=\"" + string.Format(url, "1") + "\">首页</a><a class=\"previou\" title=\"上一页\" href=\"" + string.Format(url, (curPage - 1)) + "\">上一页</a>";
       }


       StringBuilder s = new StringBuilder("");

       s.Append(t1);
       for (int i = startPage; i <= endPage; i++)
       {
           if (i == curPage)
           {
               s.Append("<a href=\"javascript:;\" class=\"active\" title=\"第 " + i + " 页\">");
               s.Append(i);
               s.Append("</a>");
           }
           else
           {
               s.Append("<a title=\"第 " + i + " 页\" href=\"");
               s.Append(string.Format(url, i));
               s.Append("\">");
               s.Append(i);
               s.Append("</a>");
           }
       }
       s.Append(t2);

       return s.ToString();
   }

   /// <summary>
   /// 获得AJAX页码显示链接
   /// </summary>
   /// <param name="curPage">当前页数</param>
   /// <param name="countPage">总页数</param>
   /// <param name="url">超级链接地址</param>
   /// <param name="extendPage">周边页码显示个数上限</param>
   /// <returns>页码html</returns>
   public static string GetAjaxPageNumbers(int curPage, int countPage, string url, int extendPage)
   {
       int startPage = 1;
       int endPage = 1;

       string t1 = "<a title=\"首页\" href=\"javascript:;\" onclick=\"" + url.Replace("{0}", "1") + "\">首页</a><a title=\"上一页\"  href=\"javascript:;\" onclick=\"" + url.Replace("{0}", (curPage - 1).ToString()) + "\">上一页</a>";
       string t2 = "<a title=\"下一页\" href=\"javascript:;\" onclick=\"" + url.Replace("{0}", (curPage + 1).ToString()) + "\">下一页</a><a title=\"尾页\"  href=\"javascript:;\" onclick=\"" + url.Replace("{0}", countPage.ToString()) + "\">尾页</a>";

       string t3 = "";
       string t4 = "";

       if (countPage < 1) countPage = 1;
       if (extendPage < 3) extendPage = 2;

       if (countPage > extendPage)
       {
           if (curPage - (extendPage / 2) > 0)
           {
               if (curPage + (extendPage / 2) < countPage)
               {
                   startPage = curPage - (extendPage / 2);
                   endPage = startPage + extendPage - 1;
               }
               else
               {
                   endPage = countPage;
                   startPage = endPage - extendPage + 1;

                   if (curPage >= countPage)
                       t2 = "<a class=\"disabled\" title=\"下一页\" href=\"javascript:;\">下一页</a><a class=\"disabled\" title=\"尾页\" href=\"javascript:;\">尾页</a>";
               }
           }
           else
           {
               endPage = extendPage;

               if (curPage <= 1 || countPage == 1)
                   t1 = "<a class=\"disabled\" title=\"首页\" href=\"javascript:;" + "\">首页</a><a class=\"disabled\" title=\"上一页\" href=\"javascript:;\">上一页</a>";
           }
       }
       else
       {
           startPage = 1;
           endPage = countPage;

           if (curPage <= 1 || countPage == 1)
               t1 = "<a class=\"disabled\" title=\"首页\" href=\"javascript:;" + "\">首页</a><a class=\"disabled\" title=\"上一页\" href=\"javascript:;\">上一页</a>";

           if (curPage >= countPage)
               t2 = "<a class=\"disabled\" title=\"下一页\" href=\"javascript:;\">下一页</a><a class=\"disabled\" title=\"尾页\" href=\"javascript:;\">尾页</a>";
       }

       StringBuilder s = new StringBuilder("");

       s.Append(t1);

       if (curPage > (extendPage / 2) + 1)
           t3 = "<a title=\"上翻\" href=\"javascript:;\" onclick=\"" + url.Replace("{0}", startPage.ToString()) + "\">...</a>";

       s.Append(t3);

       for (int i = startPage; i <= endPage; i++)
       {
           if (i == curPage)
           {
               s.Append("<a class=\"active\" href=\"javascript:;\" title=\"第 " + i + " 页\"> ");
               s.Append(i);
               s.Append("</a>");
           }
           else
           {
               s.Append("<a title=\"第 " + i + " 页\" href=\"javascript:;\"");
               s.Append(" onclick=\"");
               s.Append(url.Replace("{0}", i.ToString()));
               s.Append("\">");
               s.Append(i);
               s.Append("</a>");
           }
       }

       if (curPage + (extendPage / 2) < countPage)
           t4 = "<a title=\"下翻\" href=\"javascript:;\" onclick=\"" + url.Replace("{0}", endPage.ToString()) + "\">...</a>";

       s.Append(t4);

       s.Append(t2);

       return s.ToString();
   }

   /// <summary>
   /// 获得AJAX页码显示链接
   /// </summary>
   /// <param name="curPage">当前页数</param>
   /// <param name="countPage">总页数</param>
   /// <param name="url">超级链接地址</param>
   /// <param name="extendPage">周边页码显示个数上限</param>
   /// <returns>页码html</returns>
   public static string GetAjaxPageNumbers(int curPage, int countPage, string url, int extendPage, bool isInstitutional = false)
   {
       int startPage = 1;
       int endPage = 1;

       //string t1 = "<a title=\"首页\" href=\"javascript:;\" onclick=\"" + url.Replace("{0}", "1") + "\">首页</a><a title=\"上一页\"  href=\"javascript:;\" onclick=\"" + url.Replace("{0}", (curPage - 1).ToString()) + "\">上一页</a>";
       string t1 = "<a href=\"javascript:;\" class=\"layui-laypage-prev\" data-page=\"" + (curPage - 1) + "\" onclick=\"" + url.Replace("{0}", (curPage - 1).ToString()) + "\">上一页</a>";
       string t2 = "<a href=\"javascript:;\" class=\"layui-laypage-next\" data-page=\""+ (curPage + 1) + "\" onclick=\"" + url.Replace("{0}", (curPage + 1).ToString()) + "\">下一页</a>";
       //string t2 = "<a title=\"下一页\" href=\"javascript:;\" onclick=\"" + url.Replace("{0}", (curPage + 1).ToString()) + "\">下一页</a><a title=\"尾页\"  href=\"javascript:;\" onclick=\"" + url.Replace("{0}", countPage.ToString()) + "\">尾页</a>";

       string t3 = "";
       string t4 = "";

       if (countPage < 1) countPage = 1;
       if (extendPage < 3) extendPage = 2;

       if (countPage > extendPage)
       {
           if (curPage - (extendPage / 2) > 0)
           {
               if (curPage + (extendPage / 2) < countPage)
               {
                   startPage = curPage - (extendPage / 2);
                   endPage = startPage + extendPage - 1;
               }
               else
               {
                   endPage = countPage;
                   startPage = endPage - extendPage + 1;

                   if (curPage >= countPage)
                       t2 = "<a class=\"disabled\" title=\"下一页\" href=\"javascript:;\">下一页</a><a class=\"disabled\" title=\"尾页\" href=\"javascript:;\">尾页</a>";
               }
           }
           else
           {
               endPage = extendPage;

               if (curPage <= 1 || countPage == 1)
                   //t1 = "<a class=\"disabled\" title=\"首页\" href=\"javascript:;" + "\">首页</a><a class=\"disabled\" title=\"上一页\" href=\"javascript:;\">上一页</a>";
               t1 = "<a href=\"javascript:;\" class=\"layui-laypage-prev layui-disabled\" data-page=\"0\">上一页</a>";
           }
       }
       else
       {
           startPage = 1;
           endPage = countPage;

           if (curPage <= 1 || countPage == 1)
               t1 = "<a class=\"disabled layui-disabled\" title=\"首页\" href=\"javascript:;" + "\">首页</a><a class=\"disabled layui-disabled\" title =\"上一页\" href=\"javascript:;\">上一页</a>";

           if (curPage >= countPage)
               t2 = "<a class=\"disabled layui-disabled\" title=\"下一页\" href=\"javascript:;\">下一页</a><a class=\"disabled layui-disabled\" title=\"尾页\" href=\"javascript:;\">尾页</a>";
       }

       StringBuilder s = new StringBuilder("");
       var sdev = "<div class=\"flex-end\" id=\"paging\"><div class=\"layui-box layui-laypage layui-laypage-default\" id=\"layui-laypage-1\">";
       if (isInstitutional)
       {
           s.Append(sdev);
       }

       s.Append(t1);

       if (curPage > (extendPage / 2) + 1)
           t3 = "<a title=\"上翻\" href=\"javascript:;\" onclick=\"" + url.Replace("{0}", startPage.ToString()) + "\">...</a>";

       s.Append(t3);

       for (int i = startPage; i <= endPage; i++)
       {
           if (i == curPage)
           {
               //s.Append("<a class=\"active\" href=\"javascript:;\" title=\"第 " + i + " 页\"> ");
               //s.Append(i);
               //s.Append("</a>");
               s.Append("<span class=\"layui-laypage-curr\"><em class=\"layui-laypage-em\"></em><em>" + i + "</em></span>");
           }
           else
           {
               s.Append("<a title=\"第 " + i + " 页\" href=\"javascript:;\"");
               s.Append(" onclick=\"");
               s.Append(url.Replace("{0}", i.ToString()));
               s.Append("\">");
               s.Append(i);
               s.Append("</a>");
               //s.Append("<span class=\"layui-laypage-curr\"><em class=\"layui-laypage-em\"></em><em>" + i + "</em></span>");
           }
       }

       if (curPage + (extendPage / 2) < countPage)
           t4 = "<a title=\"下翻\" href=\"javascript:;\" onclick=\"" + url.Replace("{0}", endPage.ToString()) + "\">...</a>";

       s.Append(t4);

       s.Append(t2);
       var sdev1 = "</div></div>";
       if (isInstitutional)
       {
           s.Append(sdev1);
       }

       return s.ToString();
   }

   /// <summary>
   /// 获得页码显示链接
   /// </summary>
   /// <param name="curPage">当前页数</param>
   /// <param name="countPage">总页数</param>
   /// <param name="url">超级链接地址</param>
   /// <param name="extendPage">周边页码显示个数上限</param>
   /// <returns>页码html</returns>
   public static string GetPageNumbers(int curPage, int countPage, string url, int extendPage)
   {
       int startPage = 1;
       int endPage = 1;

       if (url.IndexOf("?") == -1)
       {
           url = url + "?";
       }
       else
       {
           url = url + "&";
       }

       string t1 = "<a title=\"首页\" href=\"" + url + "page=1" + "\">首页</a><a title=\"上一页\" href=\"" + url + "page=" + (curPage - 1) + "\">上一页</a>";
       string t2 = "<a title=\"下一页\" href=\"" + url + "page=" + (curPage + 1) + "\">下一页</a><a title=\"尾页\" href=\"" + url + "page=" + countPage + "\">尾页</a>";

       string t3 = "";
       string t4 = "";

       if (countPage < 1) countPage = 1;
       if (extendPage < 3) extendPage = 2;

       if (countPage > extendPage)
       {
           if (curPage - (extendPage / 2) > 0)
           {
               if (curPage + (extendPage / 2) < countPage)
               {
                   startPage = curPage - (extendPage / 2);
                   endPage = startPage + extendPage - 1;
               }
               else
               {
                   endPage = countPage;
                   startPage = endPage - extendPage + 1;

                   if (curPage >= countPage)
                       t2 = "<a class=\"disabled\" title=\"下一页\" href=\"javascript:;\">下一页</a><a class=\"disabled\" title=\"尾页\" href=\"javascript:;\">尾页</a>";
               }
           }
           else
           {
               endPage = extendPage;

               if(curPage <= 1 || countPage == 1)
                   t1 = "<a class=\"disabled\" title=\"首页\" href=\"javascript:;" + "\">首页</a><a class=\"disabled\" title=\"上一页\" href=\"javascript:;\">上一页</a>";
           }
       }
       else
       {
           startPage = 1;
           endPage = countPage;

           if (curPage <= 1 || countPage == 1)
               t1 = "<a class=\"disabled\" title=\"首页\" href=\"javascript:;" + "\">首页</a><a class=\"disabled\" title=\"上一页\" href=\"javascript:;\">上一页</a>";

           if (curPage >= countPage)
               t2 = "<a class=\"disabled\" title=\"下一页\" href=\"javascript:;\">下一页</a><a class=\"disabled\" title=\"尾页\" href=\"javascript:;\">尾页</a>";
       }

       StringBuilder s = new StringBuilder("");

       s.Append(t1);

       if (curPage > (extendPage / 2) + 1)
           t3 = "<a title=\"上翻\" href=\"" + url + "page=" + startPage + "\">...</a>";

       s.Append(t3);

       for (int i = startPage; i <= endPage; i++)
       {
           if (i == curPage)
           {
               s.Append("<a class=\"active\" href=\"javascript:;\" title=\"第 " + i + " 页\"> ");
               s.Append(i);
               s.Append("</a>");
           }
           else
           {
               s.Append("<a title=\"第 " + i + " 页\" href=\"");
               s.Append(url);
               s.Append("page=");
               s.Append(i);
               s.Append("\">");
               s.Append(i);
               s.Append("</a>");
           }
       }

       if (curPage + (extendPage / 2) < countPage)
           t4= "<a title=\"下翻\" href=\"" + url + "page=" + endPage + "\">...</a>";

       s.Append(t4);

       s.Append(t2);

       return s.ToString();
   }

   /// <summary>
   /// blog 分页
   /// </summary>
   /// <param name="curPage"></param>
   /// <param name="countPage"></param>
   /// <param name="url"></param>
   /// <param name="extendPage"></param>
   /// <returns></returns>
   public static string GetBlogPageNumbers(int curPage, int countPage, string url, int extendPage)
   {
       int startPage = 1;
       int endPage = 1;

       string t1 = "<a class=\"begin\" title=\"首页\" href=\"" + url.Replace("{page}", "1") + "\"><</a> ";
       string t2 = "<a class=\"end\" title=\"尾页\" href=\"" + url.Replace("{page}", countPage.ToString()) + "\">></a>";

       if (countPage < 1) countPage = 1;
       if (extendPage < 3) extendPage = 2;

       if (countPage > extendPage)
       {
           if (curPage - (extendPage / 2) > 0)
           {
               if (curPage + (extendPage / 2) < countPage)
               {
                   startPage = curPage - (extendPage / 2);
                   endPage = startPage + extendPage - 1;
               }
               else
               {
                   endPage = countPage;
                   startPage = endPage - extendPage + 1;
                   t2 = "";
               }
           }
           else
           {
               endPage = extendPage;
               t1 = "";
           }
       }
       else
       {
           startPage = 1;
           endPage = countPage;
           t1 = "";
           t2 = "";
       }

       StringBuilder s = new StringBuilder("");

       s.Append(t1);
       for (int i = startPage; i <= endPage; i++)
       {
           if (i == curPage)
           {
               s.Append("<a title=\"第 " + i + " 页\" href=\"javascript:;\" class=\"current\">");
               s.Append(i);
               s.Append("</a> ");
           }
           else
           {
               s.Append("<a title=\"第 " + i + " 页\" href=\"");
               s.Append(url.Replace("{page}", i.ToString()));
               s.Append("\">");
               s.Append(i);
               s.Append("</a> ");
           }
       }
       s.Append(t2);

       return s.ToString();
   }
  

使用

GetPageNumbers((Int32)Model.CurrentPage, (Int32)Model.TotalPages, "**/**?state=" + GetRequestInt("state", -1)+"......." )

后面的省略号可以拼接添加多个参数

posted @ 2023-09-25 10:27  .拾贰  阅读(12)  评论(0编辑  收藏  举报