類似百度搜索後分頁的實現

百度搜索出數據之後,底下出現的頁面標識的類似實現

我這個是設置爲一頁顯示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條數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章