internal static HtmlContentBuilder CreateHtmlContentBuilder(PaginatedOptions options) { HtmlContentBuilder content = new HtmlContentBuilder(); content.AppendHtml($"<ul class=\"{options.CssClassUl}\">"); content.AppendHtmlLine(Environment.NewLine); return(content); }
internal static IHtmlContent PaginationNumbers <T>(IPaginated <T> paginated, Func <int, string> generatePageUrl, PaginatedOptions options = null) { if (options == null) { options = new PaginatedOptions(); } HtmlContentBuilder content = CreateHtmlContentBuilder(options); Numbers(content, paginated, generatePageUrl, options); content.AppendHtml("</ul>"); return(content); }
internal static IHtmlContent PaginationFirstPreviousNextLast <T>(IPaginated <T> paginated, Func <int, string> generatePageUrl, PaginatedOptions options = null) { if (options == null) { options = new PaginatedOptions(); } HtmlContentBuilder content = CreateHtmlContentBuilder(options); First(content, paginated, generatePageUrl, options); Previous(content, paginated, generatePageUrl, options); Next(content, paginated, generatePageUrl, options); Last(content, paginated, generatePageUrl, options); content.AppendHtml("</ul>"); return(content); }
internal static HtmlContentBuilder Next <T>(HtmlContentBuilder content, IPaginated <T> paginated, Func <int, string> generatePageUrl, PaginatedOptions options) { TagBuilder tag = TagLink(paginated.IsLastPage ? "#" : generatePageUrl(paginated.PageNumber + 1), options.NextLabel, options.CssClassAnchor); content.AppendHtml(tag, paginated.IsLastPage ? options.CssClassLiDisabled : null); return(content); }
public static IHtmlContent Pagination <T>(this IHtmlHelper htmlHelper, IPaginated <T> paginated, Func <int, string> generatePageUrl, PaginatedStyle paginatedStyle = PaginatedStyle.NumbersWithFirstPreviousNextLast, PaginatedOptions options = default(PaginatedOptions)) { IHtmlContent content = null; switch (paginatedStyle) { case PaginatedStyle.FirstPreviousNextLast: { content = PaginationFirstPreviousNextLast(paginated, generatePageUrl, options); break; } case PaginatedStyle.Numbers: { content = PaginationNumbers(paginated, generatePageUrl, options); break; } case PaginatedStyle.NumbersWithFirstPreviousNextLast: { content = PaginationNumbersWithFirstPreviousNextLast(paginated, generatePageUrl, options); break; } case PaginatedStyle.NumbersWithPreviousNext: { content = PaginationNumbersWithPreviousNext(paginated, generatePageUrl, options); break; } case PaginatedStyle.PreviousNext: { content = PaginationPreviousNext(paginated, generatePageUrl, options); break; } } return(content); }
internal static HtmlContentBuilder Numbers <T>(HtmlContentBuilder content, IPaginated <T> paginated, Func <int, string> generatePageUrl, PaginatedOptions options) { if (options.MaximumPageNumbersToDisplay != 8) { paginated.SetPages(options.MaximumPageNumbersToDisplay); } paginated .Pages .ToList() .ForEach(x => { var tagLink = TagLink((paginated.PageNumber != x) ? generatePageUrl(x) : "#", x.ToString(), options.CssClassAnchor); content.AppendHtml(tagLink, (paginated.PageNumber == x) ? options.CssClassLiActive + " " + options.CssClassLi : options.CssClassLi); }); return(content); }