Cześć. Napisałem pagniację tutaj jest kod za niego odpowiedzialny:
public PageModel(long totalItems, int? page, int pageSize = 10)
{
// calculate total, start and end pages
int totalPages = (int)Math.Ceiling((decimal)totalItems / pageSize);
int currentPage = page != null ? (int)page : 1;
int startPage = currentPage - 2;
int endPage = currentPage - 2;
if (startPage <= 0)
{
startPage = 1;
}
if (endPage > totalPages)
{
endPage = totalPages;
if (endPage > 6)
{
startPage = endPage - 5;
}
}
}
<ul class="pagination">
@if (Model.Pager.StartPage > 1)
{
<li class="page-item"><a class="page-link" onclick="changePage(this)" href="#">1</a></li>
}
@if (Model.Pager.StartPage > 2)
{
<li class="page-item"><a class="page-dots">...</a></li>
}
@for (var page = Model.Pager.StartPage; page <= Model.Pager.EndPage; page++)
{
<li class="page-item @(page == Model.Pager.CurrentPage ? "active" : "")"><a class="page-link" href="#" onclick="changePage(this)">@page</a></li>
}
@if (Model.Pager.EndPage < Model.Pager.TotalPages - 1)
{
<li class="page-item"><a class="page-dots">...</a></li>
}
@if (Model.Pager.EndPage < Model.Pager.TotalPages)
{
<li class="page-item"><a class="page-link" href="#" onclick="changePage(this)">@Model.Pager.TotalPages</a></li>
}
</ul>
Chciałbym aby drugi i przedostatni element listy był wykropkowany aby było np 1 2 3 4 5 albo 1..3 4 5 albo 1 2 3 ... 6
a teraz mam 1 .. 3 4 5 albo 1 2 3 ... 5. Można to jakoś poprawić :)