首页 > 解决方案 > 分页负载问题

问题描述

我试图用列表创建一个分页。我试过下面的代码

IList<portable.ActionReturnResult> GetPage(
    IList<portable.ActionReturnResult> list, int page, int pageSize)
{
    return list.Skip(page * pageSize).Take(pageSize).ToList();
}

IList<portable.ActionReturnResult>  Pageload = 
    GetPage(appBase.Results, currentpage, pageSize).ToList();

此代码不返回正确的值。我有 100 条记录(页面大小为 5 和 20 页),如果我的页面 = 20 且页面大小 = 5,则返回 0。此代码是否正确?我找到了这个。

我试过这个样本

我需要加载我的第 20 页加载(最后 5 条记录)

标签: c#

解决方案


在您的代码中,页面从零开始,因此第 20 页需要 105 条记录。如果你希望你的页码从 1 开始,你需要对你的代码做一个小的改动:

IList<portable.ActionReturnResult> GetPage(IList<portable.ActionReturnResult> list, 
    int page, int pageSize)
{
    return list.Skip((page-1) * pageSize).Take(pageSize).ToList();
                    //subtract 1 here
}

推荐阅读