首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

分页页码展示的算法

2013-06-25 
分页页码显示的算法分页后,想实现只显示固定个数的页码,比如显示5个,12345,当点击4的时候,显示23456我的循

分页页码显示的算法
分页后,想实现只显示固定个数的页码,比如显示5个,12345,当点击4的时候,显示23456
我的循环是这么写的
很明显,是不对的
有没有人可以帮我修改一下

for (int i = (pds.CurrentPageIndex - 3) > 0 ? (pds.CurrentPageIndex  - 3) : 1; i <= ((pds.CurrentPageIndex  + 5) < pds.PageCount ? (pds.CurrentPageIndex  + 5) : pds.PageCount); i++)


pds是PagedDataSource
pds.CurrentPageIndex是当前页的索引,不是当前页的页码
[解决办法]
 public static void PagsArithmetic()
        {
            //假设的页码
            int[] pags = new int[5];
            //被点击的页码
            int index = 0;
            //总页数
            int pagCount = 7;
            for (int i = 0; i < 5; i++)
            {
                //判读是否要变动页码,如果不大于3就为初始页码
                if (index > 3)
                {
                    pags[i] = index - 2 + i;
                    //超出最大页码,直接从后往前赋值
                    if (pags[i] > pagCount) {
                        int reduce = 4;
                        for (int j = 0; j < 5; j++)
                        {
                            pags[j] = pagCount - reduce;
                            reduce--;
                        }
                    }


                }
                else
                {
                    pags[i] = i + 1;
                }
            }
        }
[解决办法]
int pageIndex= int.Parse(Request["pageIndex"]);
int ps=(pageIndex/5) + (pageIndex%5==0?0:1);
int pageCount=(rowCount/pageSize) + (rowCount%pageSize==0?0:1);
for(int i=5 * (ps-1) + 1;i<=ps * 5 && i<=pageCount;i++)
{
   .....
}

热点排行