• Pagination


    using System.Collections.Generic;
    
    namespace Oyang.Tool
    {
        public interface IPagination
        {
            int PageIndex { get; set; }
            int PageSize { get; set; }
            int TotalCount { get; set; }
            string SortField { get; set; }
            bool IsAsc { get; set; }
        }
    
        public interface IFullPagination : IPagination
        {
            int PageCount { get; }
            int ButtonCount { get; set; }
            List<int> ListPageButton { get; }
            List<int> CalcPageButton();
        }
    
        public class Pagination : IPagination
        {
            public int PageIndex { get; set; }
            public int PageSize { get; set; }
            public int TotalCount { get; set; }
            public string SortField { get; set; }
            public bool IsAsc { get; set; }
        }
    
        public class FullPagination : Pagination, IFullPagination
        {
            public int PageCount
            {
                get { return TotalCount % PageSize == 0 ? TotalCount / PageSize : TotalCount / PageSize + 1; }
            }
            public int ButtonCount { get; set; } = 5;
    
            List<int> _listPageButton = null;
            public List<int> ListPageButton { get; }
    
            public List<int> CalcPageButton()
            {
                _listPageButton = new List<int>();
                int temp1 = (ButtonCount - 1) / 2;
                int temp2 = ButtonCount - 1 - temp1;
                int startPageIndex = 1;
                int endPageIndex = 1;
                if (PageCount <= ButtonCount)
                {
                    startPageIndex = 1;
                    endPageIndex = PageCount;
                }
                else if (PageIndex <= temp1)
                {
                    startPageIndex = 1;
                    endPageIndex = startPageIndex + ButtonCount - 1;
                }
                else if (PageIndex + temp2 > PageCount)
                {
                    endPageIndex = PageCount;
                    startPageIndex = endPageIndex - ButtonCount + 1;
                }
                else
                {
                    startPageIndex = PageIndex - temp1;
                    endPageIndex = PageIndex + temp2;
                }
    
                for (int i = startPageIndex; i <= endPageIndex; i++)
                {
                    _listPageButton.Add(i);
                }
                return _listPageButton;
            }
        }
    
    }
  • 相关阅读:
    linux 重定向输出到文件、nohup、&
    linux 挂载 iso 镜像文件、CentOS设置本地yum源
    模拟信号、数字信号

    Spring集成数据访问框架、集成NoSql数据库
    spring profile机制测试
    Dockerfile、push到阿里云
    镜像、容器、部署tomcat、修改容器为新镜像、容器卷
    SpringMVC源码
    JNDI
  • 原文地址:https://www.cnblogs.com/oyang168/p/9952222.html
Copyright © 2020-2023  润新知