namespace Common { public class PageLinkHelp { /// <summary> /// 生成分頁超連結標籤 /// 使用了Bootstrap3的分頁樣式:首頁«第380頁第381頁第382頁第383頁第384頁»尾頁 /// </summary> /// <param name="pageIndex">當前頁碼(當前頁索引)</param> /// <param name="pageCount">總頁碼數 /// 總頁數計算公式: /// 第1種.Math.Max((資料總條數 + 每頁顯示的數量 - 1) / 每頁顯示的數量, 1): /// var pageCount = Math.Max((count + pageSize - 1) / pageSize, 1); /// 第2種.(int)Math.Ceiling(資料總條數 * 1.00 / 每頁顯示的數量) : /// var pageCount = (int)Math.Ceiling(count * 1.00 / pageSize); /// </param> /// <returns>頁碼超連結</returns> public static string GetPageBar(int pageIndex, int pageCount) { if (pageCount <= 1) { return string.Empty; } int start = (pageIndex - 2); if (start < 1) { start = 1; } int end = (start + 4); if (end > pageCount) { start += pageCount - end; end = pageCount; } var linkStr = new System.Text.StringBuilder(); linkStr.Append("<ul class="pagination">"); if (pageIndex != 1) { linkStr.Append($"<li class="page-item"><a class="page-link" href=`?pageIndex={1}` >首頁</a></li>"); linkStr.Append($"<li class="page-item"><a class="page-link" href=`?pageIndex={pageIndex - 1}` >«</a></li>"); } for (int i = start; i <= end; i++) { if (i == pageIndex) { //active //當前頁 linkStr.Append($"<li class="page-item active"><a class="page-link" href=`?pageIndex={i}` >第{i}頁</a></li>"); } else { linkStr.Append($"<li class="page-item"><a class="page-link" href=`?pageIndex={i}` >第{i}頁</a></li>"); } } if (pageIndex < pageCount) { linkStr.Append($"<li class="page-item"><a class="page-link" href=`?pageIndex={pageIndex + 1}` >»</a></li>"); linkStr.Append($"<li class="page-item"><a class="page-link" href=`?pageIndex={pageCount}` >尾頁</a></li>"); } linkStr.Append("</ul>"); return linkStr.ToString(); } } }
記錄一下,方便以後用。。。感覺計算這些亂七八糟的還是有點難的,,,也許是自己還不太熟。。