百度搜索出數據之後,底下出現的頁面標識的類似實現
我這個是設置爲一頁顯示10條,最多顯示5頁,是之前參考過一些網上的例子之後改寫的。
function paping (pg_num){
var maxPageCount = 5;//最大顯示頁數
var pageCount = ${pages};//總頁數,由服務器端進行計算,傳回
// 如果當前頁數大於總頁數,則設置當前頁數等於總頁數
if(pg_num >= pageCount){
pg_num = pageCount;
}
var option = "";
var pageNow = (pg_num-1>1?pg_num-1:1);
//alert(pageNow);
var root = "<%=request.getContextPath()%>";
/* option+="<li><a href='"+root+"'>下一頁</a></li>";
alert(option); */
option+="<li> <a href='" +root+"/merchant/queryAllMerchantList.action?page="+pageNow+"'> 上一頁</a></li>" ;
if(pageCount<maxPageCount+1){
for(var i=1;i<pageCount+1;i++){
if(i==pg_num){
option+="<li><a>"+i+"</a></li>"
}else{
option+="<li> <a href='" +root+"/merchant/queryAllMerchantList.action?page="+i+"'>"+i+"</a></li>";
}
}
option+="<li> <a href='" +root+"/merchant/queryAllMerchantList.action?page="+(pg_num+1<pageCount?pg_num+1:pageCount)+"'> 下一頁</a></li>" ;
}else{
var begin=0;
var end=0;
if(pg_num-2>0){
/*限制每次最多展示5頁*/
begin = pg_num-2;
end =pg_num+2;
if(pg_num>=pageCount-2){
begin=pageCount-maxPageCount+1;
end=pageCount;
}
for(var i=begin;i<end;i++){
if(i==pg_num){
option+="<li><a>"+i+"</a></li>"
}else{
option+="<li> <a href='" +root+"/merchant/queryAllMerchantList.action?page="+i+"'>"+i+"</a></li>";
}
}
option+="<li> <a href='" +root+"/merchant/queryAllMerchantList.action?page="+(pg_num+1<end?pg_num+1:end)+"'> 下一頁</a></li>";
}else{
for(var i=1;i<maxPageCount+1;i++){
if(i==pg_num){
option+="<li><a>"+i+"</a></li>"
}else{
option+="<li> <a href='" +root+"/merchant/queryAllMerchantList.action?page="+i+"'>"+i+"</a></li>";
}
}
}
option+="<li> <a href='" +root+"/merchant/queryAllMerchantList.action?page="+(pg_num+1<pageCount?pg_num+1:pageCount)+"'> 下一頁</a></li>";
}
return option;
}
效果如下
當超過5頁,出現第六頁時,就會顯示23456,第一頁則不會再顯示。這裏每次只從服務器取10條數據。