网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
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);
    }
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

上述代码定义了一个名为 PagedListWarp<T> 的泛型类,用于封装分页数据。这个类的主要功能是帮助开发者在处理数据分页时,方便地管理和访问分页相关的信息。以下是对代码中各个部分的详细解释:

类的构造函数

  • PagedListWarp():无参数的构造函数,允许创建一个空的分页对象。
  • PagedListWarp(int currentPageIndex, int pageSize, int totalItemCount, List<T> items):带参数的构造函数,用于初始化分页对象的属性,包括当前页索引、每页记录数、总记录数和当前页的数据项。

属性

  1. CurrentPageIndex:表示当前页的索引(从1开始)。
  2. PageSize:每页显示的记录数。
  3. TotalItemCount:要分页的数据总数。
  4. TotalPageCount:计算并返回总页数,使用 Math.Ceiling 方法确保总页数向上取整。
  5. StartItemIndex:计算并返回当前页的开始记录索引(从1开始)。
  6. EndItemIndex:计算并返回当前页的结束记录索引。如果当前页的结束索引超过总记录数,则返回总记录数。
  7. Items:当前页的数据项列表,类型为 List<T>,其中 T 是泛型参数,表示数据项的类型。

方法

  • ToPagedList():将当前的 PagedListWarp<T> 对象转换为一个 PagedList<T> 对象(假设 PagedList<T> 是另一个类,可能用于进一步处理或展示分页数据)。这个方法返回一个新的 PagedList<T> 实例,包含当前页的数据、当前页索引、每页大小和总记录数。

总结

PagedListWarp<T> 类的设计目的是为了简化分页数据的管理,使得开发者可以轻松地获取当前页的信息、总页数、开始和结束记录索引等,同时也提供了将其转换为其他分页对象的功能。这在处理大量数据时非常有用,尤其是在 Web 应用程序中,能够有效地提高用户体验。

loading