0
我的控制器類包含我該如何修改這個Google類似的分頁?
var Paged = new PaginatedList<Products>(SideBar, page ?? 0, pageSize);
if (Request.IsAjaxRequest())
{
return PartialView("~/Views/Shared/_Grid.cshtml", Paged);
}
return View(Paged);
的PaginatedList是
public class PaginatedList<T> : List<T>
{
public int PageIndex { get; private set; }
public int PageSize { get; private set; }
public int TotalCount { get; private set; }
public int TotalPages { get; private set; }
public PaginatedList(IQueryable<T> source, int pageIndex, int pageSize)
{
PageIndex = pageIndex;
PageSize = pageSize;
TotalCount = source.Count();
TotalPages = (int)Math.Ceiling(TotalCount/(double)PageSize);
this.AddRange(source.Skip(PageIndex * PageSize).Take(PageSize));
}
public bool HasPreviousPage
{
get
{
return (PageIndex > 0);
}
}
public bool HasNextPage
{
get
{
return (PageIndex + 1 < TotalPages);
}
}
}
而我的觀點是
<div class="pagination-container">
<nav class="pagination">
<ul>
@for (int i = 0; i < Model.TotalPages; i++)
{
<li><a href="@Url.Action("Index", "Home", new { page = i})"
class="@(i == Model.PageIndex ? "current-page" : "")">@(i + 1)</a></li>
}
</ul>
</nav>
<nav class="pagination-next-prev">
<ul>
@if (Model.HasPreviousPage) {
<li><a href="@Url.Action("Index", "Home", new { page = (Model.PageIndex - 1) })" class="prev"></a></li>
}
@if (Model.HasNextPage) {
<li><a href="@Url.Action("Index", "Home", new { page = (Model.PageIndex + 1) })" class="next"></a></li>
}
</ul>
</nav>
<div>
Page @(Model.PageIndex + 1) of @Model.TotalPages
</div>
</div>
的一個問題與上面的觀點,是它創建等於數字的網頁模型中的頁面大小。如果模型有6個頁面的結果是
如果我有100個Model.Pages會發生什麼?
我不確定你的問題。 Google最多隻顯示10頁,並在頁面上顯示總數。這是你想要的嗎? –
@PaulCoghill其實是的。對不起,英語不是我的舌頭語言 – OrElse
不用擔心,希望我在下面的答案中有正確的問題。 –