带分页码的分页算法

 int start = 1, end = 10;

        //如果总页数小于结束页码
        if (PageCount < end)
        {
            //则结束页码为总页数
            end = PageCount;
        }
        else
        {
            //当前页大于5后开始重新计算起始页,否则起始页为1
            start = PageIndex > 5 ? PageIndex - 5 : start;
            //起始页码加9减去总页数,用于查看是否超过了总页数
            int result = start + 9 - PageCount;
            //如果超过总页数肯定大于0
            if (result > 0)
            {
                end = PageCount;//设置结束页码为总页数
                start = start - result;//超过最后页,补差
            }
            else
            {
                //不超过总页数,起始页加9计算出结束页码
                end = start + 9;
            }
        }

        int size = PageSize;

        //总页数小于分页码数
        if (PageCount < PageSize)
        {
            //设置分页码个数为总页数
            size = PageCount;
        }

        int[] rows = new int[size];

        int index = 0;

        for (int i = start; i <= end;i++ )
        {
            rows[index] = i;
            index++;
        }
posted @ 2012-02-16 13:07  唔愛吃蘋果  阅读(576)  评论(0编辑  收藏  举报