通常我们用的分页方法都是分好了之后在下面有个导航分别是“首页,上一页,下一页,末页”这几个连接。
我总觉得这样不过直观,请问怎么实现象baidu和google那样的分页呢?下面都有页码的数字,比如在首页则显示123456789...100(假设有100页),而在50页的时候显示的是1...48 49 50 51 52 53 54 55 56 ......100
这样呢?而且我看现在一般的分页方法都是SQL分页。SQL分页的好处是只读取我们要的那页的一些数据。但是我们却不知道总共有多少条记录,有多少页啊 。最起码要知道总记录的话要全部select出来再用getRows()方法获得,那样的话不是不是SQL分页的优点都没了吗?请问有没人回答下这两个问题啊,这样的分页到底是怎么实现的啊?先谢谢了!

解决方案 »

  1.   

    select count(*) from myTable 就能拿到所有的数据行数哦!
    数字连接?有那么麻烦吗
    你总知道当前页吧 currentPage和totalPage吧beginPage = currentPage-10;
    endPage = currentPage+10if(beginPage<2)beginPage=2;if(endPage>totalPage)endPage=totalPage;
    // 先输出第一页的连接for(int i=beginPage; i<=endPage; i++){
      // 输出连接就行了;
    }
    // 如果 totalPage > endPage
    // 输出 ... 和最后一页的连接
      

  2.   

    模仿Google的分页代码自己以前写的一个,希望对楼主有帮助.:)