我有以下分页逻辑,效果很好。如果我决定当时加载5个项目(每次)它工作正常。但是我有以下场景:我想最初加载10个项目,然后每次用户点击加载更多我想加载5个项目。我怎么能这样做?
public class Page
{
public Page(int totalItems, int? page, int pageSize = 5)
{
var totalPages = (int)Math.Ceiling((decimal)totalItems / (decimal)pageSize);
var currentPage = page != null ? (int)page : 1;
var startPage = currentPage - 5;
var endPage = currentPage + 4;
if (startPage <= 0)
{
endPage -= (startPage - 1);
startPage = 1;
}
if (endPage > totalPages)
{
endPage = totalPages;
if (endPage > 10)
{
startPage = endPage - 9;
}
}
TotalItems = totalItems;
CurrentPage = currentPage;
PageSize = pageSize;
TotalPages = totalPages;
StartPage = startPage;
EndPage = endPage;
StartIndex = (CurrentPage - 1) * PageSize;
EndIndex = Math.Min(StartIndex + PageSize - 1, TotalItems - 1);
}
public int TotalItems { get; private set; }
public int CurrentPage { get; private set; }
public int PageSize { get; private set; }
public int TotalPages { get; private set; }
public int StartPage { get; private set; }
public int EndPage { get; private set; }
public int StartIndex { get; set; }
public int EndIndex { get; set; }
}
答案 0 :(得分:0)
您可以检查页面是零还是1,具体取决于您启动的索引,如果这样,这意味着它是第一次并返回10而不是5,然后继续像往常一样返回5,因为页面将增加且条件不会再适用