0. 沒(méi)有找到一款中意的分頁(yè)插件,又不想使用現(xiàn)成的(丑到爆),所以自己動(dòng)手造一個(gè)吧
先看下效果(其實(shí)也不咋滴...):
我的小站地址:我的Bootstrap小站;
PS:(問(wèn)博客園:為什么老是刪我的置頂隨便?上一篇閱讀量都快500了,也分分鐘給我從首頁(yè)刪掉...真是無(wú)語(yǔ)了博客園地址:http://www.cnblogs.com/haust/p/5615946.html> )。
有點(diǎn)另類(lèi),分頁(yè)直接是在后臺(tái)拼接好html,然后發(fā)送到前臺(tái)的:
1. 分頁(yè)容器:
div class="pagination"> ul> //************分頁(yè)HTML********* /ul> /div>
2. PagerHelper:
namespace ZYN.BLOG.WebHelper { public class PagerHelper { /// summary> /// 生成分頁(yè)Html數(shù)據(jù) /// /summary> /// param name="currentPage">當(dāng)前頁(yè)/param> /// param name="pageSize">頁(yè)容量/param> /// param name="totalCount">數(shù)據(jù)總條數(shù)/param> /// returns>pagerHtmlString/returns> public static string GeneratePagerString(int currentPage, int pageSize, int totalCount) { var redirectToUrl = HttpContext.Current.Request.Url.AbsolutePath; pageSize = pageSize = 0 ? 4 : pageSize; //1.0 總頁(yè)數(shù) int totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1); //2.0 分頁(yè)條的容量 int pageBarSize = 6;//默認(rèn)一個(gè)分頁(yè)條顯示6個(gè)頁(yè)碼。分頁(yè)條容量 //3.0 分頁(yè)條的個(gè)數(shù) totalPages個(gè)頁(yè)數(shù)按 pageBarSize = 6 可以 分為多少個(gè)分頁(yè)條 int pageBarNum = (totalPages + pageBarSize - 1) / pageBarSize; // totalPages=13時(shí),也就是把13個(gè)頁(yè)碼分成3個(gè)分頁(yè)條 //判斷當(dāng)前頁(yè)currentPage坐落在第幾個(gè)分頁(yè)條內(nèi) int position = (currentPage - 1) / pageBarSize; //根據(jù)分頁(yè)條的序號(hào),計(jì)算出該分頁(yè)條的第一個(gè)頁(yè)碼start和最后一個(gè)頁(yè)碼end int start = position * pageBarSize + 1; //如果是最后一個(gè)分頁(yè)條,則需判斷它實(shí)際的頁(yè)條容量;否則頁(yè)條容量就是pageBarSize int curBarCapacity = pageBarSize; if (position == pageBarNum - 1) { curBarCapacity = totalPages - (pageBarNum - 1) * pageBarSize; } StringBuilder pagerHtmlString = new StringBuilder(); StringBuilder endHtmlString = new StringBuilder(); //處理首頁(yè) pagerHtmlString.AppendFormat("li id='start-page'>a href='{0}?pageIndex={1}pageSize={2}'>首頁(yè)/a>/li> ", redirectToUrl, 1, pageSize); //處理上一頁(yè):如果當(dāng)前頁(yè)不是第一頁(yè),就加上上一頁(yè) if (currentPage > 1) { pagerHtmlString.AppendFormat("li class='prev-page'>a href='{0}?pageIndex={1}pageSize={2}'>上一頁(yè)/a>/li> ", redirectToUrl, currentPage - 1, pageSize); } //假如起始位置start為1 7 13 for (int i = 0; i curBarCapacity; i++) //curBarCapacity=3 i=0 1 2 { int j = start + i; //要顯示的頁(yè)碼當(dāng)量值 if (j == currentPage) { //對(duì)當(dāng)前頁(yè)的處理:class=active pagerHtmlString.AppendFormat("li class='active show-page'>span>{0}/span>/li> ", currentPage); if (curBarCapacity == pageBarSize) { //不處理最后一個(gè)分頁(yè)條頁(yè) if (currentPage == start + pageBarSize - 1) { if (currentPage + 1 totalPages) { endHtmlString.AppendFormat("li class='show-page'>a href='{0}?pageIndex={1}pageSize={2}'>{3}/a>/li>", redirectToUrl, currentPage + 1, pageSize, currentPage + 1); } endHtmlString.Append("li class='show-page'>span>.../span>/li>"); endHtmlString.AppendFormat("li class='show-page'>a href='{0}?pageIndex={1}pageSize={2}'>{3}/a>/li>", redirectToUrl, totalPages, pageSize, totalPages); } } } else { pagerHtmlString.AppendFormat("li class='show-page'>a href='{0}?pageIndex={1}pageSize={2}'>{3}/a>/li> ", redirectToUrl, j, pageSize, j); } } //省略號(hào)的處理 pagerHtmlString.Append(endHtmlString.ToString()); //處理下一頁(yè):如果當(dāng)前頁(yè)不是最后一頁(yè),則加上下一頁(yè)。也即中間的所有分頁(yè)條都顯示下一頁(yè) if (currentPage != totalPages) { pagerHtmlString.AppendFormat("li class='next-page'>a href='{0}?pageIndex={1}pageSize={2}'>下一頁(yè)/a>/li> ", redirectToUrl, currentPage + 1, pageSize); } //處理末頁(yè) pagerHtmlString.AppendFormat("li id='end-page'>a href='{0}?pageIndex={1}pageSize={2}'>末頁(yè)/a>/li> ", redirectToUrl, totalPages, pageSize); pagerHtmlString.AppendFormat("li id='total-page'>span>共-{0}-頁(yè)/span>/li>", totalPages); pagerHtmlString.Append(" "); return pagerHtmlString.ToString(); } } }
3 渲染出來(lái)的分頁(yè)HTML是這樣的:
div class="pagination"> ul> li id="start-page">a href="/Home/WrapArtList/0?pageIndex=1pageSize=6">首頁(yè)/a>/li> li class="active show-page">span>1/span>/li> li class="show-page">a href="/Home/WrapArtList/0?pageIndex=2pageSize=6">2/a>/li> li class="show-page">a href="/Home/WrapArtList/0?pageIndex=3pageSize=6">3/a>/li> li class="show-page">a href="/Home/WrapArtList/0?pageIndex=4pageSize=6">4/a>/li> li class="show-page">a href="/Home/WrapArtList/0?pageIndex=5pageSize=6">5/a>/li> li class="next-page">a href="/Home/WrapArtList/0?pageIndex=2pageSize=6">下一頁(yè)/a>/li> li id="end-page">a href="/Home/WrapArtList/0?pageIndex=5pageSize=6">末頁(yè)/a>/li> li id="total-page">span>共-5-頁(yè)/span>/li> /ul> /div>
4. CSS樣式:
/* 分頁(yè)樣式pagination ====== */ .pagination { /* div pagination*/ margin: 0; padding: 20px; text-align: center; font-size: 12px; display: block; } .pagination ul { display: inline-block; *display: inline; *zoom: 1; margin-left: 0; margin-bottom: 0; padding: 0; } .pagination ul > li { display: inline; } .pagination ul > li > a, .pagination ul > li > span { margin: 0 2px; float: left; padding: 5px 12px; background-color: #ddd; color: #666; border-radius: 2px; opacity: .88; } .pagination ul > li > a:hover, .pagination ul > li > a:focus { background-color: #bce8f1; } .pagination ul > .active > a, .pagination ul > .active > span { background-color: #45B6F7; color: #fff; } .pagination ul > .active > a, .pagination ul > .active > span { cursor: default; } .pagination ul > li > span, .pagination ul > .disabled > span, .pagination ul > .disabled > a, .pagination ul > .disabled > a:hover, .pagination ul > .disabled > a:focus { color: #999999; background-color: transparent; cursor: default; } /* 自定義的分頁(yè)pagination 結(jié)束====== */
以上所述是小編給大家介紹的利用ASP.NET MVC+Bootstrap搭建個(gè)人博客之打造清新分頁(yè)Helper(三),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
標(biāo)簽:慶陽(yáng) 清遠(yuǎn) 海西 臨夏 聊城 甘肅 中衛(wèi)
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《利用ASP.NET MVC+Bootstrap搭建個(gè)人博客之打造清新分頁(yè)Helper(三)》,本文關(guān)鍵詞 利用,ASP.NET,MVC+Bootstrap,搭建,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。