发表日期:2019-04 文章编辑:小灯 浏览次数:2688
在信息页中调用分页数据时,信息后面一般都需要分页控制按钮面板,分页面板是一个稍显繁琐的功能,下面直接上代码:
@functions{ //默认分页函数 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参数方法 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; //左右两边显示页码数 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目录下作为局部文件,这样就可以在所有需要分页的模板中调用,实现代码的重用性,下面用实例演示完整的分页模板。
@{ //实例化一个分页信息描述类 PageInfo pageInfo = new PageInfo() { PageSize = 10, CurrentPage = ViewBag.CurrentPage //系统预设 }; 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); //获取信息内容页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)
模板制作人员可以在上面代码基础上完善,其中的@Html.Partial("PagebreakPartial", pageInfo)就是调用分页局部视图,第一个参数为文件名,第二个参数为PageInfo描述类,大家记得这种固定语法就可以了。
日期:2019-04 浏览次数:3025
日期:2019-04 浏览次数:2994
日期:2019-04 浏览次数:2904
日期:2019-04 浏览次数:2742
日期:2019-04 浏览次数:2828
日期:2019-04 浏览次数:2994
日期:2019-04 浏览次数:2945
日期:2019-04 浏览次数:3205
日期:2019-04 浏览次数:3242
日期:2019-04 浏览次数:2905
日期:2019-04 浏览次数:3254
日期:2019-04 浏览次数:2687
日期:2019-04 浏览次数:2845
日期:2019-04 浏览次数:2954
日期:2019-04 浏览次数:2795
日期:2019-04 浏览次数:3264
日期:2019-04 浏览次数:3154
日期:2019-04 浏览次数:2838
日期:2019-04 浏览次数:3064
日期:2019-04 浏览次数:2890
日期:2019-04 浏览次数:2658
日期:2019-04 浏览次数:2960
日期:2019-04 浏览次数:2872
日期:2019-04 浏览次数:2966
日期:2019-04 浏览次数:2919
日期:2019-04 浏览次数:2792
日期:2019-04 浏览次数:2626
日期:2019-04 浏览次数:2661
日期:2019-04 浏览次数:2715
日期:2019-04 浏览次数:2756
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.