Example #1
0
        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());
        }
Example #2
0
        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()));
        }