public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo, Func<int, string> pageUrl) { int first = 1, last = pagingInfo.TotalPages; if (pagingInfo.TotalPages > 2 * VisiblePagesOffset + 1) { last = Math.Min(pagingInfo.TotalPages, pagingInfo.CurrentPageNumber + VisiblePagesOffset); first = Math.Max(1, last - 2 * VisiblePagesOffset); last += Math.Max(0, first - pagingInfo.CurrentPageNumber + VisiblePagesOffset); } var result = new StringBuilder(); result.AppendPrevButton(pagingInfo.CurrentPageNumber, (pagingInfo.CurrentPageNumber > 1), pageUrl); var divOuter = new TagBuilder("div"); divOuter.AddCssClass("allbtns"); for (int currentPage = first; currentPage <= last; currentPage++) { divOuter.AppendPageButton(currentPage, (currentPage == pagingInfo.CurrentPageNumber), pageUrl); } result.Append(divOuter); result.AppendNextButton(pagingInfo.CurrentPageNumber, (pagingInfo.CurrentPageNumber < pagingInfo.TotalPages), pageUrl); return MvcHtmlString.Create(result.ToString()); }
public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo, Func <int, string> pageUrl) { int first = 1, last = pagingInfo.TotalPages; if (pagingInfo.TotalPages > 2 * VisiblePagesOffset + 1) { last = Math.Min(pagingInfo.TotalPages, pagingInfo.CurrentPageNumber + VisiblePagesOffset); first = Math.Max(1, last - 2 * VisiblePagesOffset); last += Math.Max(0, first - pagingInfo.CurrentPageNumber + VisiblePagesOffset); } var result = new StringBuilder(); result.AppendPrevButton(pagingInfo.CurrentPageNumber, (pagingInfo.CurrentPageNumber > 1), pageUrl); var divOuter = new TagBuilder("div"); divOuter.AddCssClass("allbtns"); for (int currentPage = first; currentPage <= last; currentPage++) { divOuter.AppendPageButton(currentPage, (currentPage == pagingInfo.CurrentPageNumber), pageUrl); } result.Append(divOuter); result.AppendNextButton(pagingInfo.CurrentPageNumber, (pagingInfo.CurrentPageNumber < pagingInfo.TotalPages), pageUrl); return(MvcHtmlString.Create(result.ToString())); }