ASP数字分页导航的实现

一直在做分页的时候都比较常用"首页 上页 下页 尾页"这种方式的来分页,像论坛那种很少用,所以一直也没考虑过,不过这次用到的时候,一时还真想不起来,于是在网上找了一会后,发现一个方法,比较容易理解,就贴出来大家一起分享。

        分析:我们需要让导航条的导航页数不变,而导航范围随当前页码改变。还要让当前页码变成红色且不带链接。很显然不能够用一个简单的循环把页码从1到10的列出来。
        想了很久,决定把整个导航代码分为三个部分:1.位于当前页码前的部分;2.当前页码;3.位于当前页码后的部分。
问题的关键是要注意三个限制:1.导航符合逻辑(说白咯页数不能小于0)  2.符合记录数 3.符合范围限制
假定已建立记录集合theRs,并设置了数据分页(不要告诉我你这也不会)。下面开始代码!

新窗口查看复制到剪贴板打印?

  1. dim c1,c2       '定义两个变量,分别表示前后两部分的开始页码
  2. dim cc1,cc2     '分别定义前后两部分的结束页码
  3. '完成以上部分实际是限制导航范围的关键,
  4. '下面限制导航条显示15个页码链接,nowPage是当前页数,已经过正确性处理
  5. c1 = nowPage - 7    
  6. c2 = nowPage + 7  
  7. cc1 = nowPage - 1  
  8. cc2 = nowPage + 1  
  9. if c1 < 1 then    '此处很关键,它符合页数不小于1的要求
  10.     c1 = 1  
  11. end if  
  12. '开始第一部分的循环***************
  13. '由于要符合页数不小于1的要求,所以设置循环的step为-1
  14.     for i = cc1 to c1 step -1  
  15.         pp = cc1 + c1 - i    'pp是最后显示的数字。这一步不好理解。但如果不这样处理,则会出现…5.4.3.2.1的情况,则不符合我们1.2.3.4.5……的要求。大家可以去试试看。
  16.          Response.write "&lt;a href=?Page=" & pp &">" & pp & "</a>"
  17.     next  
  18. '本页页码加为红色,且不带链接
  19.     Response.write "<font color='red'>" & nowPage & "</font>"
  20. '开始后部分的循环***************
  21.     for j =  cc2 to c2  
  22.       if j &gt; theRs.pageCount then exit for  
  23.       Response.write <a .................................(省略咯)  & j & "&lt;/a>"
  24.    next 

你可能感兴趣的:(数字,职场,asp,导航,休闲)