使用 ASP.NET 生成 Html 分頁代碼


開發博客系統的時候使用了 NVelocity 模版引擎,在列表頁的時候需要使用分頁,所以自己寫了個生成 Html 代碼的分頁。

使用NVelocity生成列表頁面的時候比如是第一頁把參數“1”和列表頁的URL等傳進去,生成當前頁面的分頁,然后用NVelocity替換生成后的代碼,需要生成的代碼示例:

<div class="pager">
	<div class="pagerbox">
		<a href="/?cid=0&tag=&key=&page=1">首頁</a>
		<a href="/?cid=0&tag=&key=&page=1">上一頁</a>
		<b>1</b>
		<a href="/?cid=0&tag=&key=&page=2">2</a>
		<a href="/?cid=0&tag=&key=&page=3">3</a>
		<a href="/?cid=0&tag=&key=&page=4">4</a>
		<a href="/?cid=0&tag=&key=&page=2">下一頁</a>
		<a href="/?cid=0&tag=&key=&page=6">尾頁</a>
	</div>
	<span>當前第1頁,共6頁, 共有53條記錄。</span>
</div>

先來個效果圖:

樣式代碼:

.pagerbox { float: left; }
.pager { margin: 20px 0px; }
    .pager span { line-height: 28px; float: right; }
.pagerbox a, .pagerbox b { background-color: #009AD9; border: 1px solid #009AD9; }
.pager .pagerbox a { color: #FFF; float: left; line-height: 28px; padding: 0 10px; margin-right: 2px; }
    .pager .pagerbox a:hover { color: #000000; border: 1px solid #148ec0; background: #f0f0f0; }
.pager .pagerbox b { float: left; font-weight: normal; padding: 0 10px; background: #fff; line-height: 28px; margin-right: 2px; }

后台代碼:

      ///<summary>
        ///打印分頁信息。
        ///</summary>
        ///<param name="recordCount">記錄總數。</param>
        ///<param name="pageIndex">分頁索引。</param>
        ///<param name="pageSize">分頁大小。</param>
        ///<param name="pageLink">分頁地址,{0}為當前頁匹配。</param>
        /// <param name="nextPageText">下一頁顯示文本。</param>
        /// <param name="prevPageText">上一頁顯示文本。</param>
        /// <param name="homePageText">首頁顯示文本。</param>
        /// <param name="lastPageText">尾頁顯示文本。</param>
        /// <param name="displayMsg">顯示消息文本。</param>
        /// <returns>返回分頁的 Html 代碼。</returns>
        public static string Print(int recordCount, int pageIndex, int pageSize, string pageLink, string nextPageText, string prevPageText, string homePageText, string lastPageText, string displayMsg)
        {
            if (pageSize < 1) { pageSize = 1; }
            if (pageIndex < 1) { pageIndex = 1; }
            //開始
            string html = string.Empty;
            string htmlLeftPage = string.Empty;
            string htmlRightPage = string.Empty;
            if (pageLink == string.Empty) { pageLink = "?"; }
            //開始計算
            long pageCount = 0;
            if (recordCount % pageSize == 0)
            {
                pageCount = recordCount / pageSize;
            }
            else
            {
                pageCount = (recordCount / pageSize) + 1;
            }
            for (int i = 2; i >= 1; i--)
            {
                if (pageIndex - i >= 1)
                {
                    htmlLeftPage += string.Format("<a href=\"{0}\">{1}</a>", string.Format(pageLink, (pageIndex - i)), pageIndex - i);
                }
            }
            for (int j = 1; j <= 2; j++)
            {
                if (pageIndex + j <= pageCount)
                {
                    htmlRightPage += string.Format("<a href=\"{0}\">{1}</a>", string.Format(pageLink, (pageIndex + j)), pageIndex + j);
                }
            }
            long prevPage = pageIndex - 1;
            if (prevPage < 1) { prevPage = 1; }
            long nextPage = pageIndex + 1;
            if (nextPage > pageCount) { nextPage = pageCount; }
            //最后處理
            if (nextPage < 1) { nextPage = 1; }
            if (pageCount < 1) { pageCount = 1; }
            //計算結束
         string leftHtml = string.Format("<a {0}>{1}</a><a {2}>{3}</a>{4}", pageIndex != 1 ? string.Format("href=\"{0}\"", string.Format(pageLink, 1)) : "", homePageText, pageIndex != prevPage ? string.Format("href=\"{0}\"", string.Format(pageLink, prevPage)) : "", prevPageText, htmlLeftPage);
            string rightHtml = string.Format("{0}<a {1}>{2}</a><a {3}>{4}</a>", htmlRightPage, pageIndex != nextPage ? string.Format("href=\"{0}\"", string.Format(pageLink, nextPage)) : "", nextPageText, pageIndex != pageCount ? string.Format("href=\"{0}\"", string.Format(pageLink, pageCount)) : "", lastPageText);
            html = string.Format("<div class=\"pagerbox\">{0}<b>{1}</b>{2}</div><span>{3}</span>", leftHtml, pageIndex, rightHtml, string.Format(displayMsg, pageIndex, pageCount, recordCount));
            return html;
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM