/// <summary> /// /// </summary> private static void GenerateNextBtn(string actionName, string controllerName, string areaName, object routeValues, object ajaxAttributes, PagerOptions pagerOptions) { if (pagerOptions.DisplayLinkToNextPage == PagedListDisplayMode.Always || (pagerOptions.DisplayLinkToNextPage == PagedListDisplayMode.IfNeeded && !isLastPage)) { var span = new TagBuilder("span"); span.InnerHtml.AppendHtml(pagerOptions.LinkToNextPageFormat); var page = pagerOptions.currentPage >= pagerOptions.PageCount ? pagerOptions.PageCount : pagerOptions.currentPage + 1; nextBtn.MergeAjaxAttribute(ajaxAttributes); nextBtn.MergeUrlAttribute(actionName, controllerName, areaName, routeValues, page); nextBtn.InnerHtml.AppendHtml(span); } }
/// <summary> /// /// </summary> private static void GeneratePageNumbers(string actionName, string controllerName, string areaName, object routeValues, object ajaxAttributes, PagerOptions pagerOptions) { for (int page = 1; page <= pagerOptions.PageCount; page++) { var li = new TagBuilder("li"); li.AddCssClass(pagerOptions.LiElementClasses); if (page == 1 && pagerOptions.currentPage > pagerOptions.PageCount) { li.AddCssClass("active"); } else if (page == pagerOptions.currentPage) { li.AddCssClass("active"); } var span = new TagBuilder("span"); span.InnerHtml.AppendHtml(page.ToString()); var a = new TagBuilder("a"); a.MergeAjaxAttribute(ajaxAttributes); a.MergeUrlAttribute(actionName, controllerName, areaName, routeValues, page); a.InnerHtml.AppendHtml(span); li.InnerHtml.AppendHtml(a); ul.InnerHtml.AppendHtml(li); } }
/// <summary> /// /// </summary> public static IHtmlContent Pager(string actionName, string controllerName, object routeValues, object ajaxAttributes, PagerOptions pagerOptions, string areaName = "") { if (pagerOptions.DisplayMode == PagedListDisplayMode.Never || (pagerOptions.DisplayMode == PagedListDisplayMode.IfNeeded && pagerOptions.PageCount <= 1)) { return(null); } InitialPager(pagerOptions); InitialTags(pagerOptions); GeneratePrevBtn(actionName, controllerName, areaName, routeValues, ajaxAttributes, pagerOptions); GeneratePageNumbers(actionName, controllerName, areaName, routeValues, ajaxAttributes, pagerOptions); GenerateNextBtn(actionName, controllerName, areaName, routeValues, ajaxAttributes, pagerOptions); wrapper.InnerHtml.AppendHtml(ul); GenerateInfoArea(pagerOptions); return(wrapper); }
/// <summary> /// /// </summary> private static void GeneratePrevBtn(string actionName, string controllerName, string areaName, object routeValues, object ajaxAttributes, PagerOptions pagerOptions) { if (pagerOptions.DisplayLinkToPreviousPage == PagedListDisplayMode.Always || (pagerOptions.DisplayLinkToPreviousPage == PagedListDisplayMode.IfNeeded && !isFirstPage)) { var page = pagerOptions.currentPage <= 1 ? 1 : pagerOptions.currentPage - 1; prevBtn.MergeAjaxAttribute(ajaxAttributes); prevBtn.MergeUrlAttribute(actionName, controllerName, areaName, routeValues, page); prevBtn.InnerHtml.AppendHtml(pagerOptions.LinkToPreviousPageFormat); } }