zoukankan      html  css  js  c++  java
  • 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 进程退出后自动启动
    Python UDP broadcast PermissionError: [Errno 13] Permission denied
    C# 获取MAC地址
    C# 多线程
    C# UdpClient 设置超时时间
    C# 控件聚焦
    C# 添加图片资源
    C# Listview 第一列不能居中
    Ubuntu 14.04 AM335x TI-RTOS 编译
    为AM335x移植Linux内核主线代码
  • 原文地址:https://www.cnblogs.com/oyang168/p/9952222.html
Copyright © 2011-2022 走看看