• 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;
            }
        }
    
    }
  • 相关阅读:
    [bzoj5278][Usaco2018 Open]Out of Sorts
    CF480Div2掉分记
    [bzoj3759]Hungergame
    [bzoj4184]shallot
    [原]Golang FileServer
    golang thrift 源码分析,服务器和客户端究竟是如何工作的
    golang thrift 总结一下网络上的一些坑
    德州扑克AI WEB版
    德州扑克AI实现 TexasHoldem Poker
    德州扑克游戏
  • 原文地址:https://www.cnblogs.com/oyang168/p/9952222.html
Copyright © 2020-2023  润新知