显示较少数量的页面链接?

时间:2014-07-24 12:10:20

标签: c# asp.net-mvc asp.net-mvc-5.1

我如何限制分页 有很多记录我想表现出有限的分页 在视图代码或帮助程序类代码中是否有任何问题 分页节目如[1,2,3,4,5,6,7,8,9,8,9,10,11,12] Mvc5分页助手类

public static class PagingHelpers
{

         public static MvcHtmlString PageLinks(this HtmlHelper html,
                                          PagingInfo pagingInfo,
                                          Func<int, string> pageUrl)
    {

        int pageSize = 3;
        StringBuilder result = new StringBuilder();
        TagBuilder tag;
        for (int i = 1; i <= pagingInfo.TotalPages; i++)
        {
            tag = new TagBuilder("a");

            tag.MergeAttribute("href",pageUrl(i));


            tag.InnerHtml = i.ToString();
            if (i == pagingInfo.CurrentPage)
            {
                tag.AddCssClass("selected");
                tag.AddCssClass("btn-primary");
            }
            if (i >= pagingInfo.CurrentPage - pageSize && i <= pagingInfo.CurrentPage +    pageSize)
            {



            }
            tag.AddCssClass("btn btn-default");
            result.Append(tag.ToString());
        }
        return MvcHtmlString.Create(result.ToString());
    }

}

在视图中检索

 <div class="col-md-4"> 
@Html.PageLinks(Model.PagingInfo, x => Url.Action("Index", new { page = x }))
</div>

1 个答案:

答案 0 :(得分:1)

您创建了自己的HtmlHelper。我建议扔掉并使用MvcPagingMvcPaging GitHub page

您可以通过NuGet找到它。这是一个非常完整的包,有很多选项,其中包括:MaxNrOfPages()

它可以按照你想要的方式使用:

@Html.Pager(pageSize, pageNumber, totalItemCount).Options(o => o.MaxNrOfPages(5))
// Show for example 5 pages.

希望这会有所帮助,如果是这样,请不要忘记接受答案。