Пример #1
0
        /// <summary>
        /// Gets first two, previous & current & next, last two pages
        /// </summary>
        private List <PageItem> GetPagesWithGaps()
        {
            var pages              = new List <PageItem>();
            var firstPage          = new PageItem(1);
            var secondPage         = new PageItem(2);
            var pageBeforeLastPage = new PageItem(TotalPageCount - 1);
            var lastPage           = new PageItem(TotalPageCount);

            //first two pages
            pages.Add(firstPage);
            pages.Add(secondPage);

            //current page segment
            pages.AddIfNotContains(new PageItem(PreviousPage));
            pages.AddIfNotContains(new PageItem(CurrentPage));
            pages.AddIfNotContains(new PageItem(NextPage));

            //last two pages
            pages.AddIfNotContains(pageBeforeLastPage);
            pages.AddIfNotContains(lastPage);

            AddGaps(pages);
            return(pages);
        }
Пример #2
0
        protected virtual async Task <string> GetPageAsync(TagHelperContext context, TagHelperOutput output, PageItem page)
        {
            var pageHtml = new StringBuilder("");

            pageHtml.AppendLine("<li class=\"page-item " + (TagHelper.Model.CurrentPage == page.Index ? "active" : "") + "\">");

            if (page.IsGap)
            {
                pageHtml.AppendLine("<span class=\"page-link gap\">…</span>");
            }
            else if (!page.IsGap && TagHelper.Model.CurrentPage == page.Index)
            {
                pageHtml.AppendLine("                                 <span class=\"page-link\">\r\n" +
                                    "                                    " + page.Index + "\r\n" +
                                    "                                    <span class=\"sr-only\">(current)</span>\r\n" +
                                    "                                </span>");
            }
            else
            {
                pageHtml.AppendLine(await RenderAnchorTagHelperLinkHtmlAsync(context, output, page.Index.ToString(), page.Index.ToString()));
            }

            pageHtml.AppendLine("</li>");

            return(pageHtml.ToString());
        }