Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#单击“加载更多”时,分页显示最初的10,然后是5_C#_Asp.net Core - Fatal编程技术网

c#单击“加载更多”时,分页显示最初的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

我有以下非常好的分页逻辑。如果我决定一次(每次)加载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; }
}
公共类页面
{
公共页面(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将增加,条件将不再适用

您可以显示此类的实现吗?充满神奇数字的代码。。。