Asp.Net分頁生成頁碼超連結方法

小樣兒哦發表於2018-07-30
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}` >&laquo;</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}` >&raquo;</a></li>");
                linkStr.Append($"<li class="page-item"><a class="page-link" href=`?pageIndex={pageCount}` >尾頁</a></li>");
            }
            linkStr.Append("</ul>");
            return linkStr.ToString();
        }
    }
}

記錄一下,方便以後用。。。感覺計算這些亂七八糟的還是有點難的,,,也許是自己還不太熟。。

相關文章