c#分页显示当点击加载

时间:2017-09-04 06:40:08

标签: 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 / (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; }
}

1 个答案:

答案 0 :(得分:0)

您可以检查页面是零还是1,具体取决于您启动的索引,如果这样,这意味着它是第一次并返回10而不是5,然后继续像往常一样返回5,因为页面将增加且条件不会再适用