VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • C#教程之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;
        }
    }

}
 

相关教程