日期:2014-05-18  浏览次数:20807 次

分页显示的问题,在线等!!!!!
许多论坛的网站的最下的翻页的如:《[1]   2   3   4   5   6   7   8   9   ……   》这种形式,当点到“3”的时候,“3”会被中括号[]扩起来,当点到“》”的时候就会从10或11开始,10   11   12   13   14   15   16   17   18   19   ……,就是我想使我的分页实现这样的效果,不知道这个的原理是什么?请大虾指教!

------解决方案--------------------
那么现在点了这个就到了第五页,这个page=5是知道了
那么就判断这个大于10或小于10的,大于10就显示10到20页的链接,小于10就显示1-10页的链接(大于20大于30用循环判断),这个链接就是 <a href= "xxx.jsp?page=1 "> 1 </a> <a href= "xxx.jsp?page=2 "> 2 </a> <a href= "xxx.jsp?page=3 "> 3 </a> 这样的,
------解决方案--------------------
另外有一种方式也不错,就是当前页始终居中。既对当前页一目了然,同时点上一页号或者下一页号,都是固定的位置,不用费劲去找(虽然也可以直接点“上一页”“下一页”)。

对于任何一个页码N,可以用下面循环产生页码序列:

for (i=(N整除10)*10+1;i=(N整除10)*10+10;i++)
{
if(i==当前页码值) 输出 " [i] ";
else 输出 " <a href= "……JSP?页码参数= " + i > i </a> ";
}
------解决方案--------------------
首先取得当前页码的十位数字i;判断10(i+1)是不是小于最大页;
如果小于 则在
for(int p=10i+1;p <10(i+1);p++){
if(page==p)
out.print( " <a href=\ "..../name.jsp?page= "+p+ "\ "> [ "+p+ "] </a> ");
else
out.print( " <a href=\ "..../name.jsp?page= "+p+ "\ "> "+p+ " </a> ");
}
这样就可以了
------解决方案--------------------
<%@ page contentType= "text/html; charset=gb2312 " language= "java " import= "java.sql.* " errorPage= " " %>
<%
String currentPage=request.getParameter( "currentPage ");
String pages=request.getParameter( "pages ");
%>
<div id= "show "> &nbsp; </div>
<script>
var currentPage= <%=currentPage%> ;
var pages= <%=pages%> ;
var group;
if(currentPage%10==0){
group=Math.floor(currentPage/10);
}else{
group=Math.floor(currentPage/10+1);
}


function showPage(currentGroup){
var showStr= " ";
var groups;
if(pages%10==0){
groups=Math.floor(pages/10);
}else{
groups=Math.floor(pages/10+1);
}
//向前滚动
if(currentGroup <=1){
showStr=showStr+ " < < ";
}else{
showStr=showStr+ " <a href= 'javascript:showPage( "+(currentGroup-1)+ ") '> < < </a> ";
}

if(pages <=10){
for(var i=1;i <=pages;i++){
if(i==currentPage){
showStr=showStr+ "&nbsp;[ <a href= 'a.jsp?currentPage= "+i+ "&pages= <%=pages%> '> "+i+ " </a> ]&nbsp; ";
}else{
showStr=showStr+ "&nbsp; <a href= 'a.jsp?currentPage= "+i+ "&pages= <%=pages%> '> "+i+ " </a> &nbsp; ";
}
}
}else if((pages-currentPage) <=pages%10 || (currentGroup==groups && pages%10!=0)){
var num;
for(var i=1;i <=pages%10;i++){
num=(currentGroup-1)*10+i;
if(num==currentPage){
showStr=showStr+ "&nbsp;[ <a href= 'a.jsp?currentPage= "+num+ "&pages= <%=pages%> '> "+num+ " </a> ]&nbsp; ";
}else{
showStr=showStr+ "&nbsp; <a href= 'a.jsp?currentPage= "+num+ &quo