發(fā)表日期:2019-04 文章編輯:小燈 瀏覽次數(shù):2683
在信息頁中調(diào)用分頁數(shù)據(jù)時,信息后面一般都需要分頁控制按鈕面板,分頁面板是一個稍顯繁瑣的功能,下面直接上代碼:
@functions{ ????//默認分頁函數(shù) ????private?string?Pagebreak(int?page,?string?urlPrefix,?string?urlParams?=?"") ????{ ????????string?rv?=?""; ????????if?(page?>?1) ????????{ ????????????rv?=?urlPrefix?+?page?+?"/"; ????????} ????????else ????????{ ????????????rv?=?urlPrefix; ????????} ????????rv?+=?urlParams; ????????return?rv; ????} ????//獲取url參數(shù)方法 ????private?string?GetUrlParams() ????{ ????????string?rv?=?""; ????????System.Collections.Specialized.NameValueCollection?queryStrings?=?Request.QueryString; ????????int?count?=?queryStrings.Count; ????????if?(count?>?0) ????????{ ????????????rv?=?"?"; ????????} ????????foreach?(string?key?in?queryStrings) ????????{ ????????????if?(rv.IndexOf("=")?>?0) ????????????{ ????????????????rv?+=?"&"; ????????????} ????????????rv?+=?key?+?"="?+?HttpUtility.UrlEncode(queryStrings[key]); ????????} ????????return?rv; ????} } @{ ????PageInfo?pageInfo?=?(PageInfo)Model; ????int?pageCount?=?pageInfo.PageCount; ????int?pageSize?=?pageInfo.PageSize; ????int?recordCount?=?pageInfo.RecordCount; ????int?currentPage?=?pageInfo.CurrentPage; ????int?m?=?2;?//左右兩邊顯示頁碼數(shù) ????string?urlParams?=?GetUrlParams(); ????string?urlPrefix?=?Html.ColumnUrl();//獲取當前欄目url,如果是自定義文件,請自行修改為路徑。 } ????<div?class="text-center"> ????????<ul?class="pagination"> ????????????@{ ????????????????if?(currentPage?>?1) ????????????????{ ????????????????????<li> ????????????????????????<a?href="@Pagebreak(currentPage-1,urlPrefix,urlParams)">«</a> ????????????????????</li> ????????????????} ????????????????else ????????????????{ ????????????????????<li?class="disabled"> ????????????????????????<a>«</a> ????????????????????</li> ????????????????} ????????????????int?startPage?=?currentPage?-?m; ????????????????int?lastPage?=?currentPage?+?m; ????????????????int?cha?=?0; ????????????????if?(lastPage?>?pageCount) ????????????????{ ????????????????????cha?=?lastPage?-?pageCount; ????????????????????startPage?=?startPage?-?cha; ????????????????????if?(startPage?<?1) ????????????????????{ ????????????????????????startPage?=?1; ????????????????????} ????????????????????lastPage?=?pageCount; ????????????????} ????????????????else?if?(startPage?<?1) ????????????????{ ????????????????????cha?=?1?-?startPage; ????????????????????startPage?=?startPage?+?cha; ????????????????????lastPage?=?lastPage?+?cha; ????????????????????if?(lastPage?>?pageCount) ????????????????????{ ????????????????????????lastPage?=?pageCount; ????????????????????} ????????????????} ????????????????if?(startPage?>?1) ????????????????{ ????????????????????<li><a?href="@Pagebreak(1,urlPrefix,urlParams)">1?...</a></li> ????????????????} ????????????????for?(int?i?=?startPage;?i?<=?lastPage;?i++) ????????????????{ ????????????????????<li@(currentPage==i?"?class=active":"")><a?href="@Pagebreak(i,urlPrefix,urlParams)">@i</a></li> ????????????????} ????????????????if?(lastPage?<?pageCount) ????????????????{ ????????????????????<li><a?href="@Pagebreak(pageCount,urlPrefix,urlParams)">...?@pageCount</a></li> ????????????????} ????????????????if?(currentPage?<?pageCount) ????????????????{ ????????????????????<li> ????????????????????????<a?href="@Pagebreak(currentPage+1,urlPrefix,urlParams)">»</a> ????????????????????</li> ????????????????} ????????????????else ????????????????{ ????????????????????<li?class="disabled"> ????????????????????????<a>»</a> ????????????????????</li> ????????????????} ????????????} ????</ul> </div>
把上面代碼保存為PagebreakPartial.cshtml放在模板的Views/Shared目錄下作為局部文件,這樣就可以在所有需要分頁的模板中調(diào)用,實現(xiàn)代碼的重用性,下面用實例演示完整的分頁模板。
@{ ???//實例化一個分頁信息描述類 ???PageInfo?pageInfo?=?new?PageInfo() ????????{ ????????????PageSize?=?10, ????????????CurrentPage?=?ViewBag.CurrentPage?//系統(tǒng)預(yù)設(shè) ????}; ????int?columnId?=?Html.CurrentColumnId();//獲取當前欄目id ????var?dataList?=?Html.InfoDataList(new?{?ColumnId?=?columnId,?OrderBy?=?"thedate?desc"?},?null,?null,?pageInfo); } <div?class="news-list"> ????@foreach?(var?item?in?dataList) ????{ ????????string?url?=?Html.InfoDataUrl((int)item.ColumnId,?(int)item.Id);?//獲取信息內(nèi)容頁url,固定語法。 ????????<div> ????????????<div?class="title"><a?href="@url"?target="_blank">@item.Title</a></div> ????????????<div?class="date">@item.Thedate</div> ????????</div> ????} </div> @Html.Partial("PagebreakPartial",?pageInfo)
模板制作人員可以在上面代碼基礎(chǔ)上完善,其中的@Html.Partial("PagebreakPartial", pageInfo)就是調(diào)用分頁局部視圖,第一個參數(shù)為文件名,第二個參數(shù)為PageInfo描述類,大家記得這種固定語法就可以了。
日期:2019-04 瀏覽次數(shù):3019
日期:2019-04 瀏覽次數(shù):2986
日期:2019-04 瀏覽次數(shù):2887
日期:2019-04 瀏覽次數(shù):2736
日期:2019-04 瀏覽次數(shù):2822
日期:2019-04 瀏覽次數(shù):2985
日期:2019-04 瀏覽次數(shù):2937
日期:2019-04 瀏覽次數(shù):3197
日期:2019-04 瀏覽次數(shù):3239
日期:2019-04 瀏覽次數(shù):2897
日期:2019-04 瀏覽次數(shù):3247
日期:2019-04 瀏覽次數(shù):2682
日期:2019-04 瀏覽次數(shù):2837
日期:2019-04 瀏覽次數(shù):2949
日期:2019-04 瀏覽次數(shù):2789
日期:2019-04 瀏覽次數(shù):3251
日期:2019-04 瀏覽次數(shù):3145
日期:2019-04 瀏覽次數(shù):2832
日期:2019-04 瀏覽次數(shù):3059
日期:2019-04 瀏覽次數(shù):2882
日期:2019-04 瀏覽次數(shù):2654
日期:2019-04 瀏覽次數(shù):2954
日期:2019-04 瀏覽次數(shù):2866
日期:2019-04 瀏覽次數(shù):2959
日期:2019-04 瀏覽次數(shù):2911
日期:2019-04 瀏覽次數(shù):2781
日期:2019-04 瀏覽次數(shù):2618
日期:2019-04 瀏覽次數(shù):2656
日期:2019-04 瀏覽次數(shù):2706
日期:2019-04 瀏覽次數(shù):2746
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.