c#单击“加载更多”时,分页显示最初的10,然后是5
我有以下非常好的分页逻辑。如果我决定一次(每次)加载5个项目,效果很好。但是,我有以下场景:我希望最初加载10个项目,然后每次用户单击“加载更多”时,我希望加载5个项目。我该怎么做c#单击“加载更多”时,分页显示最初的10,然后是5,c#,asp.net-core,C#,Asp.net Core,我有以下非常好的分页逻辑。如果我决定一次(每次)加载5个项目,效果很好。但是,我有以下场景:我希望最初加载10个项目,然后每次用户单击“加载更多”时,我希望加载5个项目。我该怎么做 public class Page { public Page(int totalItems, int? page, int pageSize = 5) { var totalPages = (int)Math.Ceiling((decimal)totalItems / (decima
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; }
}
公共类页面
{
公共页面(int totalItems,int?Page,int pageSize=5)
{
var totalPages=(int)数学上限((十进制)totalItems/(十进制)pageSize);
var currentPage=page!=null?(int)第1页;
var起始页=当前页-5;
var endPage=currentPage+4;
if(起始页总页数)
{
endPage=总页数;
如果(结束页>10)
{
起始页=结束页-9;
}
}
TotalItems=TotalItems;
CurrentPage=CurrentPage;
PageSize=页面大小;
总页数=总页数;
起始页=起始页;
EndPage=EndPage;
StartIndex=(当前页面-1)*页面大小;
EndIndex=Math.Min(StartIndex+PageSize-1,TotalItems-1);
}
公共整数TotalItems{get;private set;}
public int CurrentPage{get;private set;}
public int PageSize{get;private set;}
公共整型TotalPages{get;private set;}
公共int起始页{get;私有集;}
public int EndPage{get;private set;}
公共int StartIndex{get;set;}
公共int-EndIndex{get;set;}
}
您可以根据您启动的索引检查page是0还是1,如果是,这意味着这是第一次,返回10而不是5,然后像往常一样继续返回5,因为page将增加,条件将不再适用您可以显示此类的实现吗?充满神奇数字的代码。。。