Gå til indhold

Pagination

PaginationHelper bygger en PaginationViewModel med links, current page, next/previous og ellipsis-flags.

Brug helperen direkte i produktion. <ec-pagination> findes stadig, men er markeret [Obsolete("Not ready for production")] i koden.

var currentPage = PaginationHelper.GetCurrentPageFromQueryString(
Context.Request,
queryStringKey: "page",
totalPages: totalPages
);

Hvis query string mangler, returneres 1. Værdien bliver aldrig mindre end 1 eller større end totalPages.

var totalPages = PaginationHelper.GetTotalPages(totalResults, resultsPerPage);
var pageItems = results.GetPage(currentPage, resultsPerPage);

GetTotalPages returnerer 0, hvis totalResults eller resultsPerPage er 0.

var model = PaginationHelper.GetModel(
Context.Request,
totalPages,
currentPage,
queryStringKey: "page",
maxLinks: 6,
useEllipsis: true
);

maxLinks har standard 6. queryStringKey har standard page.

@model Ecreo.Essentials.Frontend.Pagination.PaginationViewModel
<nav aria-label="Pagination">
@if (Model.PreviousPageLink is not null)
{
<a href="@Model.PreviousPageLink">Forrige</a>
}
@foreach (var link in Model.Links)
{
<a href="@link.Value" aria-current="@(Model.CurrentPage == link.Key ? "page" : null)">
@link.Key
</a>
}
@if (Model.NextPageLink is not null)
{
<a href="@Model.NextPageLink">Næste</a>
}
</nav>

<ec-pagination> kan stadig bruges til ældre løsninger, men den anbefales ikke til nye implementeringer.

<ec-pagination total-pages="10"
current-page="3"
use-ellipsis="true"
max-links="6">
</ec-pagination>