我如何限制分页 有很多记录我想表现出有限的分页 在视图代码或帮助程序类代码中是否有任何问题 分页节目如[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>
答案 0 :(得分:1)
您创建了自己的HtmlHelper。我建议扔掉并使用MvcPaging
。 MvcPaging GitHub page
您可以通过NuGet找到它。这是一个非常完整的包,有很多选项,其中包括:MaxNrOfPages()
它可以按照你想要的方式使用:
@Html.Pager(pageSize, pageNumber, totalItemCount).Options(o => o.MaxNrOfPages(5))
// Show for example 5 pages.
希望这会有所帮助,如果是这样,请不要忘记接受答案。