网站首页 网站源码
using System;
using System.Collections.Generic;
namespace Dpz.Core.Web.Pager;
/// <summary>
/// 分页数据包装类
/// </summary>
/// <typeparam name="T"></typeparam>
public class PagedListWarp<T>
{
public PagedListWarp() { }
public PagedListWarp(int currentPageIndex, int pageSize, int totalItemCount, List<T> items)
{
CurrentPageIndex = currentPageIndex;
PageSize = pageSize;
TotalItemCount = totalItemCount;
Items = items;
}
/// <summary>
/// 当前页索引
/// </summary>
public int CurrentPageIndex { get; set; }
/// <summary>
/// 每页显示的记录数
/// </summary>
public int PageSize { get; set; }
/// <summary>
/// 要分页的数据总数
/// </summary>
public int TotalItemCount { get; set; }
/// <summary>
/// 总页数
/// </summary>
public int TotalPageCount => (int)Math.Ceiling(TotalItemCount / (double)PageSize);
/// <summary>
/// 开始记录索引
/// </summary>
public int StartItemIndex => (CurrentPageIndex - 1) * PageSize + 1;
/// <summary>
/// 结束记录索引
/// </summary>
public int EndItemIndex =>
TotalItemCount > CurrentPageIndex * PageSize ? CurrentPageIndex * PageSize : TotalItemCount;
/// <summary>
/// 当前页数据
/// </summary>
public List<T> Items { get; set; }
/// <summary>
/// 转换为PagedList对象
/// </summary>
/// <returns></returns>
public PagedList<T> ToPagedList()
{
return new PagedList<T>(Items, CurrentPageIndex, PageSize, TotalItemCount);
}
}
上述代码定义了一个名为 PagedListWarp<T>
的泛型类,用于封装分页数据。这个类的主要功能是帮助开发者在处理数据分页时,方便地管理和访问分页相关的信息。以下是对代码中各个部分的详细解释:
PagedListWarp()
:无参数的构造函数,允许创建一个空的分页对象。PagedListWarp(int currentPageIndex, int pageSize, int totalItemCount, List<T> items)
:带参数的构造函数,用于初始化分页对象的属性,包括当前页索引、每页记录数、总记录数和当前页的数据项。Math.Ceiling
方法确保总页数向上取整。List<T>
,其中 T
是泛型参数,表示数据项的类型。PagedListWarp<T>
对象转换为一个 PagedList<T>
对象(假设 PagedList<T>
是另一个类,可能用于进一步处理或展示分页数据)。这个方法返回一个新的 PagedList<T>
实例,包含当前页的数据、当前页索引、每页大小和总记录数。PagedListWarp<T>
类的设计目的是为了简化分页数据的管理,使得开发者可以轻松地获取当前页的信息、总页数、开始和结束记录索引等,同时也提供了将其转换为其他分页对象的功能。这在处理大量数据时非常有用,尤其是在 Web 应用程序中,能够有效地提高用户体验。