這篇文章給大家分享的是有關(guān)MvcPager分頁控件適用于Bootstrap的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)齊齊哈爾,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
由于自帶的分頁樣式不能和項(xiàng)目整體風(fēng)格兼容,所以我們準(zhǔn)備改寫源代碼,使其能夠使用Bootstrap 的分頁樣式。
先來查看兩種分頁的html代碼
Bootstrap 樣式:
一個(gè)ul標(biāo)簽,li 下面有一個(gè)a 標(biāo)簽.
MvcPager 樣式:
這里就比較簡單了,一個(gè)div 下只有a 標(biāo)簽.
那么問題來了,我們該怎么修改源碼來達(dá)到Bootstrap 分頁效果呢?
1、到官網(wǎng)下載MvcPager 源代碼
2、開始研究html 生成規(guī)則.
這兩步筆者已經(jīng)幫你做了,下面跟我一起來做修改.
通過代碼調(diào)試跟蹤和查看源碼注釋,我們知道了最終的HTML 呈現(xiàn)是在PagerBuilder.cs 下的RenderPager() 方法.
var sb = new StringBuilder(); if (_ajaxPagingEnabled) { foreach (PagerItem item in pagerItems) { //修改前 //sb.Append( GenerateAjaxPagerElement(item) ); //修改后 sb.Append("
修改以上代碼以獲得li標(biāo)簽。由于ul標(biāo)簽是最后加上去的所以我們在這里修改:
if (_pagerOptions.ShowPageIndexBox) { if (!_ajaxPagingEnabled) { var attrs = new Dictionary(); AddDataAttributes(attrs); tb.MergeAttributes(attrs, true); } sb.Append(BuildGoToPageSection()); } else sb.Length -= _pagerOptions.PagerItemsSeperator.Length; //修改前 // tb.InnerHtml = sb.ToString() ; //修改后,為ul加上class='pagination'以獲得boostrap 分頁樣式 tb.InnerHtml = " " + sb.ToString() + "
";
有了以上還不行,還需要為當(dāng)前頁增加樣式,
修改后的GenerateAjaxAnchor(PagerItem item) 方法為:
private string GenerateAjaxAnchor(PagerItem item) { string url = GenerateUrl(item.PageIndex); if (string.IsNullOrWhiteSpace(url)) //這里直接假的行內(nèi)樣式,可以使用class替換掉 return "" + item.Text + ""; //return HttpUtility.HtmlEncode(item.Text); var tag = new TagBuilder("a") { InnerHtml = item.Text }; tag.MergeAttribute("href", url); tag.MergeAttribute("data-pageindex", item.PageIndex.ToString(CultureInfo.InvariantCulture)); //修改后,添加了li標(biāo)簽 return "
對(duì)源代碼的修改就是這么多了,我們一起看看效果.
中文版效果:
英文版效果(同樣是修改源碼,增加了對(duì)英文的支持):
感謝各位的閱讀!關(guān)于“MvcPager分頁控件適用于Bootstrap的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!