zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C【C#公共帮助类】分页逻辑处理类

c#逻辑 处理 分页 帮助 公共
2023-09-11 14:17:06 时间
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Common
{
    /// <summary>
    /// 分页逻辑处理类
    /// </summary>
    public class PageCollection
    {
        /// <summary>
        /// 总页数
        /// </summary>
        public int TotalPages { get; set; }
        /// <summary>
        /// 当前页面
        /// </summary>
        public int CurrentPage { get; set; }
        /// <summary>
        /// 每页的记录数
        /// </summary>
        public int OnePageSize { get; set; }
        /// <summary>
        /// 总记录数
        /// </summary>
        public long TotalRows { get; set; }
        /// <summary>
        /// 排序
        /// </summary>
        public string OrderBy { get; set; }

        /// <summary>
        /// 构造无参默认为最大数
        /// </summary>
        public PageCollection()
        {
            this.CurrentPage = 0;
            this.OnePageSize = 20;//默认最大行数20条
        }
    }
    /// <summary>
    /// 分页逻辑处理类 linq to entites
    /// </summary>
    public class PageInfo<TEntity> where TEntity : class
    {
        public PageInfo(int index, int pageSize, int count, List<TEntity> list,string url="")
        {
            Index = index;
            PageSize = pageSize;
            Count = count;
            List = list;
            Url = url;
            //计算数据条数从开始到结束的值
            if (count == 0)
            {
                BeginPage = 0;
                EndPage = 0;
            }
            else
            {
                int maxpage = count / pageSize;

                if (count % pageSize > 0)
                {
                    maxpage++;
                }
                if (index >= maxpage)
                {
                    index = maxpage;

                    BeginPage = pageSize * index - pageSize + 1;
                    EndPage = count;
                }
                else
                {
                    BeginPage = pageSize * index - pageSize + 1;
                    EndPage = pageSize * index;
                }
            }
        }

        public int Index { get; private set; }
        public int PageSize { get; private set; }
        public int Count { get; private set; }
        public List<TEntity> List { get; set; }
        public string Url { get; set; }
        public int BeginPage { get; private set; }
        public int EndPage { get; private set; }
    }

    /// <summary>
    /// 分页逻辑处理类 dynamic
    /// </summary>
    public class PageInfo 
    {
        public PageInfo(int index, int pageSize, int count, dynamic list, string url = "")
        {
            Index = index;
            PageSize = pageSize;
            Count = count;
            List = list;
            Url = url;
            //计算数据条数从开始到结束的值
            if (count == 0)
            {
                BeginPage = 0;
                EndPage = 0;
            }
            else
            {
                int maxpage = count / pageSize;

                if (count % pageSize > 0)
                {
                    maxpage++;
                }
                if (index >= maxpage)
                {
                    index = maxpage;

                    BeginPage = pageSize * index - pageSize + 1;
                    EndPage = count;
                }
                else
                {
                    BeginPage = pageSize * index - pageSize + 1;
                    EndPage = pageSize * index;
                }
            }
        }

        public int Index { get; private set; }
        public int PageSize { get; private set; }
        public int Count { get; private set; }
        public dynamic List { get; private set; }
        public string Url { get; set; }
        public int BeginPage { get; private set; }
        public int EndPage { get; private set; }
    }

    /// <summary>
    /// Eazyui分页处理逻辑类
    /// </summary>
    public class PageEazyUi 
    {
        public PageEazyUi(int _page, int _pagesize, int _total, object _rows)
        {
            page = _page;
            pagesize = _pagesize;
            total = _total;
            rows = _rows;
        }

        public int page { get; private set; }
        public int pagesize { get; private set; }
        public int total { get; private set; }
        public object rows { get; private set; }
    }
}