private List <ILink> _GenerateLinks(int currentPage, IPagingConfig config) { List <ILink> pages = new List <ILink>(); if (config.ShowNavigations) { if (!(config.HidePrevOnFirstPage && currentPage == 1)) { var link = _Services.GetService <IPrevLink>(); link.PageNum = currentPage - 1 <= 0 ? 0 : currentPage - 1; pages.Add(link); } } for (int i = 0; i < TotalPages; i++) { var link = _Services.GetService <ILink>(); link.PageNum = i + 1; pages.Add(link); } if (config.ShowNavigations) { if (!(config.HideNextOnLastPage && currentPage == TotalPages)) { var link = _Services.GetService <INextLink>(); link.PageNum = currentPage == TotalPages ? 0 : currentPage + 1; pages.Add(link); } } return(pages); }
public IHtmlContent RenderPagination(int total, int perPage, IPagingConfig config) { if (config.DoNotRenderForOnePage && total <= perPage) { return(new HtmlString(string.Empty)); } TotalItems = total; ItemsPerPage = perPage; StringBuilder sb = new StringBuilder(); sb.Append(config.PaginationWrapperStart); _GenerateLinks(_State.CurrentPage, config).ForEach(x => sb.Append(x.Render(config))); sb.Append(config.PaginationWrapperEnd); return(new HtmlString(sb.ToString())); }
public virtual string Render(IPagingConfig config) { StringBuilder sb = new StringBuilder(); var queryString = _State.BuildPaginationQueryString(config.PageKey, PageNum); sb.Append(_State.IsCurrentPage(PageNum) ? config.ActiveLinkWrapperStart : config.LinkWrapperStart); sb.Append($"<a id='page_link_{PageNum}'"); sb.Append($" name='page_link_{PageNum}' "); sb.Append($" class='{config.LinkClass}' "); sb.Append($" href='{ (_State.IsCurrentPage(PageNum) ? "#" : "?" + queryString)}' "); sb.Append(">"); sb.Append(Text ?? PageNum.ToString()); sb.Append("</a>"); sb.Append(config.LinkWrapperEnd); return(sb.ToString()); }
public virtual string Render(IPagingConfig config) { StringBuilder sb = new StringBuilder(); var qString = PageNum != 0 ? "?" + _State.BuildPaginationQueryString(config.PageKey, PageNum) : "#"; sb.Append(PageNum == 0 ? config.DisabledLinkWrapperStart : config.LinkWrapperStart); sb.Append($"<a id='page_link_{PageNum}'"); sb.Append($" name='page_link_{PageNum}' "); sb.Append($" class='{config.LinkClass}' "); sb.Append($" href='{ qString}' "); sb.Append(">"); sb.Append(Text ?? PageNum.ToString()); sb.Append("</a>"); sb.Append(config.LinkWrapperEnd); return(sb.ToString()); }
public static IHtmlContent RenderPagination(this IHtmlHelper html, int totalItems, int itemsPerPage, IPagingConfig config) { var pager = (IPager)html.ViewContext.HttpContext.RequestServices.GetService(typeof(IPager)); return(pager.RenderPagination(totalItems, itemsPerPage, config)); }
public override string Render(IPagingConfig config) { this.Text = config.PrevNavitionText; return(base.Render(config)); }
public PagingState(IPagingConfig config, IHttpContextAccessor contextAccessor) { _Config = config; _ContextAccessor = contextAccessor; }