分頁標籤字串產生方法

來源:互聯網
上載者:User
 1 /// <summary> 2         /// 分頁標籤字串產生 3         /// </summary> 4         /// <param name="pageNum">頁碼</param> 5         /// <param name="pageCount">每頁資訊數</param> 6         /// <param name="amount">資訊總數</param> 7         /// <param name="url">頁面URL(會在後面拼接?pn=頁碼)</param> 8         /// <returns></returns> 9         public static string PageTagString(int pageNum, int pageCount, int amount, string url)10         {11             StringBuilder str = new StringBuilder();12             string connStr = string.Empty;13             if (amount > pageCount)14             {15                 if (url.IndexOf("pn=") > 0)16                 {17                     if (url.IndexOf("&", url.IndexOf("pn=")) > 0)18                     {19                         string tmp = url.Substring(url.IndexOf("pn="), url.IndexOf("&", url.IndexOf("pn=")) - url.IndexOf("pn=") + 1);20                         url = url.Replace(tmp, "");21                     }22                     else23                     {24                         string tmp = url.Substring(url.IndexOf("pn=") - 1);25                         url = url.Replace(tmp, "");26                     }27                 }28 29                 if (url.IndexOf('?') > 0)30                     connStr = "&";31                 else32                     connStr = "?";33                 int maxPn = amount / pageCount;34                 if (amount % pageCount > 0) maxPn++;35                 int prevPn = pageNum - 1;36                 if (prevPn <= 0) prevPn = 1;37                 int nextPn = pageNum + 1;38                 if (nextPn > maxPn) nextPn = maxPn;39 40                 if (pageNum > 3 && maxPn > 5)41                 {42                     str.Append("<a href=\"" + url + connStr + "pn=1\">首頁</a>");43                     str.Append("<a href=\"" + url + connStr + "pn=" + (pageNum - 1 < 1 ? 1 : pageNum - 1) + "\">上一頁</a>");44                     str.Append("...");45                 }46                 else if (pageNum > 1)47                 {48                     str.Append("<a href=\"" + url + connStr + "pn=" + (pageNum - 1 < 1 ? 1 : pageNum - 1) + "\">上一頁</a>");49                 }50 51                 if (pageNum > 3)52                 {53                     for (int i = pageNum - 2; i <= (pageNum + 2 > maxPn ? maxPn : pageNum + 2); i++)54                     {55                         if (i == pageNum)56                         {57                             str.Append("<span>" + i + "</span>");58                         }59                         else60                         {61                             str.Append("<a href=\"" + url + connStr + "pn=" + i + "\">" + i + "</a>");62                         }63                     }64                 }65                 else66                 {67                     for (int i = 1; i <= (maxPn < 5 ? maxPn : 5); i++)68                     {69                         if (i == pageNum)70                         {71                             str.Append("<span>" + i + "</span>");72                         }73                         else74                         {75                             str.Append("<a href=\"" + url + connStr + "pn=" + i + "\">" + i + "</a>");76                         }77                     }78                 }79                 if (maxPn - pageNum > 2 && maxPn > 5)80                 {81                     str.Append("...");82                     str.Append("<a href=\"" + url + connStr + "pn=" + (pageNum + 1 > maxPn ? pageNum : pageNum + 1) + "\">下一頁</a>");83                     str.Append("<a href=\"" + url + connStr + "pn=" + maxPn + "\">末頁</a>");84                 }85                 else if (pageNum < maxPn)86                 {87                     str.Append("<a href=\"" + url + connStr + "pn=" + (pageNum + 1 > maxPn ? pageNum : pageNum + 1) + "\">下一頁</a>");88                 }89             }90             return str.ToString();91         }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.