发表日期:2019-04 文章编辑:小灯 浏览次数:2587
在信息页中调用分页数据时,信息后面一般都需要分页控制按钮面板,分页面板是一个稍显繁琐的功能,下面直接上代码:
@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 浏览次数:2932
日期:2019-04 浏览次数:2891
日期:2019-04 浏览次数:2783
日期:2019-04 浏览次数:2632
日期:2019-04 浏览次数:2717
日期:2019-04 浏览次数:2885
日期:2019-04 浏览次数:2835
日期:2019-04 浏览次数:3094
日期:2019-04 浏览次数:3142
日期:2019-04 浏览次数:2812
日期:2019-04 浏览次数:3138
日期:2019-04 浏览次数:2586
日期:2019-04 浏览次数:2743
日期:2019-04 浏览次数:2864
日期:2019-04 浏览次数:2707
日期:2019-04 浏览次数:3170
日期:2019-04 浏览次数:3047
日期:2019-04 浏览次数:2731
日期:2019-04 浏览次数:2953
日期:2019-04 浏览次数:2787
日期:2019-04 浏览次数:2553
日期:2019-04 浏览次数:2859
日期:2019-04 浏览次数:2770
日期:2019-04 浏览次数:2870
日期:2019-04 浏览次数:2808
日期:2019-04 浏览次数:2673
日期:2019-04 浏览次数:2533
日期:2019-04 浏览次数:2570
日期:2019-04 浏览次数:2619
日期:2019-04 浏览次数:2656
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.