core mvc pagination

XPAGE looked under the feeling is not cool with that he wrote, style is bootstrap requires little friends take it.

public static IHtmlContent Pager(this IHtmlHelper html, long totalCount, int pageSize, string pageStr)
        {
            if (totalCount < 1) return new HtmlString(string.Empty);

            var totalPages = (int)Math.Ceiling(totalCount / (double)pageSize); //总页数

            var dicRoute = html.ViewContext.RouteData.Values;
            var strQuery = html.ViewContext.HttpContext.Request.Query;
            int pageIndex;
            if (dicRoute.ContainsKey(pageStr))
            {
                if (!int.TryParse(dicRoute[pageStr].ToString(), out pageIndex)) pageIndex = 1;
            }
            else
            {
                if (!int.TryParse(strQuery[pageStr].ToString(), out pageIndex)) pageIndex = 1;
            }

            if (pageIndex < 1) pageIndex = 1;
            if (pageIndex > totalPages) pageIndex = totalPages;

            foreach (var key in dicRoute.Keys)
            {
                if (string.IsNullOrEmpty(key) || !strQuery.ContainsKey(key)) continue;
                if (!strQuery.TryGetValue(key, out var values)) continue;
                if (values.Count == 1 && !string.IsNullOrEmpty(values))
                {
                    dicRoute[key] = strQuery[key];
                }
            }

            var sbOut = new StringBuilder();
            sbOut.Append("<nav aria-label=\"Page navigation\">");
            sbOut.Append("<ul class=\"pagination\">");
            if (totalPages > 1)
            {
                sbOut.Append("<li");
                sbOut.Append(pageIndex == 1 ? "  class=\"disabled\">" : ">");
                dicRoute[pageStr] = 1;
                sbOut.Append(pageIndex == 1 ? "<a>首页</a>" : GetString(html.RouteLink("首页", dicRoute)));
                sbOut.Append("</li>");


                var for PageIndex = - 1 ;
                if (the < 1 ) for = 1 ;
                sbOut.Append("<li");
                sbOut.Append(pageIndex == 1 ? "  class=\"disabled\">" : ">");
                dicRoute[pageStr] = pre;
                sbOut.Append (pageIndex == 1 ? " <a> Previous </a> " : the GetString (Html.RouteLink ( " Previous " , dicRoute)));
                sbOut.Append("</li>");


                var nex = pageIndex + 1;
                if (nex > totalPages) nex = totalPages;
                sbOut.Append("<li");
                sbOut.Append(pageIndex == totalPages ? "  class=\"disabled\">" : ">");
                dicRoute[pageStr] = nex;
                sbOut.Append (pageIndex ? == TotalPages " <a> Next </a> " : the GetString (Html.RouteLink ( " Next " , dicRoute)));
                sbOut.Append("</li>");

                sbOut.Append("<li");
                sbOut.Append(pageIndex == totalPages ? "  class=\"disabled\">" : ">");
                dicRoute[pageStr] = totalPages;
                sbOut.Append(pageIndex == totalPages ? "<a>尾页</a>" : GetString(html.RouteLink("尾页", dicRoute)));
                sbOut.Append("</li>");
            }

            sbOut.AppendFormat ( " <Li> 0} of {<a> data </a> </ Li> " , The totalCount);

            sbOut.Append("</ul>");
            sbOut.Append("</nav>");


            return new HtmlString(sbOut.ToString());

        }

Under instructions, totalCount is the total number of pieces, pageSize is the number of page, pageStr are key parameters such as page: http:? //123.com/ page = 4 pageStr that page

Use the following

@Html.PagerNum(10, 1, "page")

 

TOTALCOUNT     detailed X
Web definitions
totalcount: Overall record
TotalCount Integer: Telescopic total number of rules
TotalCount String: a list of the Number of Entries

Guess you like

Origin www.cnblogs.com/jzz228/p/11083557.html