效果如图
/// <summary> /// 创建分页链接 /// </summary> /// <param name="helper">HtmlHelper类</param> /// <param name="startPage">开始页 (多数情况下是 1)</param> /// <param name="currentPage">当前页</param> /// <param name="totalPages">总页数</param> /// <param name="pagesToShow">前后显示的页数</param> public static MvcHtmlString Pager(this HtmlHelper helper, int startPage, int currentPage, int totalPages, int totalcount) { RouteData routeData = helper.ViewContext.RouteData; //你可能还要获取action string action = routeData.Values["action"].ToString(); string controller = routeData.Values["controller"].ToString(); //当前页的前几页 long firstPage = Math.Max(currentPage - 5, 1); //当前页的后几页 long lastPage = Math.Min(currentPage + 6, totalPages); StringBuilder html = new StringBuilder(); if (lastPage > 1) { //创建从第一页到最后一页的列表 html.AppendFormat(@"<ul class=""pagination"">"); var urlFormat = ""; //第一页时显示:domain/archives UrlHelper url = new UrlHelper(helper.ViewContext.RequestContext); urlFormat = helper.ViewContext.RequestContext.HttpContext.Request.Url.LocalPath.ToString(); //绘制分页,首页 var pp2 = ""; var parm = helper.ViewContext.RequestContext.HttpContext.Request.Url.Query.ToString(); if (!string.IsNullOrWhiteSpace(parm)) { parm = parm.Replace("?", ""); var s = parm.Split('&'); for (var i = 0; i < s.Length; i++) { if (!string.IsNullOrWhiteSpace(s[i])) { if (!s[i].Contains("page")) { pp2 += "&" + s[i]; } } } } urlFormat += "?" + pp2; html.AppendFormat("<li class='page '><a href='{0}&page={1}'>首页</a></li>", urlFormat, firstPage); //绘制分页中间数据部分 for (long i = firstPage; i <= lastPage; i++) { // string url = urlFormat.Replace("{pageNum}", i.ToString()); if (i == currentPage) //点击后就不显示超链接 { html.AppendFormat("<li class='page active'><a href='{0}&page={1}'>{1}</a></li>", urlFormat, i); } else { html.AppendFormat("<li class='page '><a href='{0}&page={1}'>{1}</a></li>", urlFormat, i); } } //显示最后一页 html.AppendFormat("<li class='page '><a href='{0}&page={1}'>末页</a></li>", urlFormat, lastPage); html.Append(@"</ul>"); html.AppendFormat(@"<div class='totalcountnum' style='float: left;line-height: 32px; margin-top: 20px; border: 1px solid rgb(204, 204, 204); border - radius: 5px 0px 0px 5px; color: rgb(153, 153, 153); padding: 0px 5px;'> 总数:{0}</div>", totalcount); } return MvcHtmlString.Create(html.ToString()); }
调用方法:
<!--放置分页 begin --> <table class="pageTable"> <tbody> <tr> <td colspan="15"> <div class="pageIn"> @(Html.Pager(1, Model.Page, Model.TotalPages, Model.TotalCount)) </div> </td> </tr> </tbody> </table> <!--放置分页 end -->
需要引用bootstrap.css
如果您也喜欢它,动动您的小指点个赞吧