一种快速到达目标页面的分页页码生成方法

假定分页条页码展示数为10。

1. 定义一个List<int>;

2. 总页数<11时,全部展示,将1-10添加到List;

3. 总页数>10时,取首两页(1、2), 当前页和前后各一页(page-1、 page、 page+1), 总页数1/4, 1/2, 3/4的页码(pages/4、pages/2、pages *3 /4),尾两页(pages-1、page)添加到List;

4. 将List去重并排序;

5. 按List当前项目生成分页条(由于以上项可能会计算出重复页码,所以最终结果有可能小于10)。

6. 当页码展示数小于10时,按1, page, pages, page-1, page+1, pages/2, pages /4, pages *3/4, 2, pages 的顺序添加,直到到达展示数上限;

List<int> pageno = new List<int>();

                if (pages < 11)
                {
                    for (int i = 0; i < pages; i++)
                    {
                        pageno.Add(i+1);
                    }
                }
                else
                {
                    pageno.Add(1);
                    pageno.Add(2);
                    pageno.Add(pages / 4);
                    pageno.Add(page - 1);
                    pageno.Add(page);
                    pageno.Add(page + 1);
                    pageno.Add(pages * 3 / 4);
                    pageno.Add(pages / 2);
                    pageno.Add(pages - 1);
                    pageno.Add(pages);
                }
                pageno.Distinct();
                pageno.Sort();


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值