最近做一个项目,js页面分页展示,但是后台没有list返回,只有一个数据统计,类似于totalNums(总记录数),说白了就
只有一个数,比如30,40,50.这样。
然后,在js页面发送请求,获取到这个数之后,利用这个数,再拼装一些标签。组成自己想要的分页展示内容。这里就没有使用到后台mySql语句的limit。
随手记录一下,方便以后调用,看代码:
首先是自己在网上搜到案例:
<html>
<head>
<meta charset='utf-8'>
<style type="text/css">
#idData {color: red;border: solid;text-align: center;}
a{text-decoration: none;}
</style>
</head>
<body onLoad="goPage(1,10);">
<table id="idData" width="70%">
<tr><td>liujinzhong1</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong2</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong3</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong4</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong5</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong6</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong7</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong8</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong9</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong10</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong11</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong12</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong13</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong14</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong15</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong16</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong17</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong18</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong19</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong20</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong21</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong22</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong23</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong24</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong25</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong26</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong27</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong28</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong29</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong30</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong31</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong32</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong33</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong34</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong35</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong36</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong37</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong38</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong39</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong40</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
</table>
<table width="60%" align="right">
<tr><td><div id="barcon" name="barcon"></div></td></tr>
</table>
<script>
function goPage(pno,psize){
var itable = document.getElementById("idData");
var num = itable.rows.length;//表格所有行数(所有记录数)
console.log(num);
var totalPage = 0;//总页数
var pageSize = psize;//每页显示行数
//总共分几页
if(num/pageSize > parseInt(num/pageSize)){
totalPage=parseInt(num/pageSize)+1;
}else{
totalPage=parseInt(num/pageSize);
}
var currentPage = pno;//当前页数
var startRow = (currentPage - 1) * pageSize+1;//开始显示的行 31
var endRow = currentPage * pageSize;//结束显示的行 40
endRow = (endRow > num)? num : endRow; //40
console.log(endRow);
//遍历显示数据实现分页
for(var i=1;i<(num+1);i++){
var irow = itable.rows[i-1];
console.log(irow);
if(i>=startRow && i<=endRow){
irow.style.display = "block";
}else{
irow.style.display = "none";
}
}
var pageEnd = document.getElementById("pageEnd");
var tempStr = "共"+num+"条记录 分"+totalPage+"页 当前第"+currentPage+"页";
if(currentPage>1){
tempStr += "<a href=\"#\" onClick=\"goPage("+(1)+","+psize+")\">首页</a>";
tempStr += "<a href=\"#\" onClick=\"goPage("+(currentPage-1)+","+psize+")\"><上一页</a>"
}else{
tempStr += "首页";
tempStr += "<上一页";
}
if(currentPage<totalPage){
tempStr += "<a href=\"#\" onClick=\"goPage("+(currentPage+1)+","+psize+")\">下一页></a>";
tempStr += "<a href=\"#\" onClick=\"goPage("+(totalPage)+","+psize+")\">尾页</a>";
}else{
tempStr += "下一页>";
tempStr += "尾页";
}
document.getElementById("barcon").innerHTML = tempStr;
}
</script>
</body>
</html>
然后是自己根据案例,改动:
var str ="";
function setBuildingBoxInfo(){
var unitName = arguments[0].name;
$.ajax({
url:'http://localhost:8080/grid/block/getUnitByUnitName.do',
type:'post',
data:{"unitName":unitName},
dataType:'json',
success:function (result) {
var nums = result.floorCount;
// for(var i=1;i <= result.floorCount;i++){
// str += "<li><a href='javascript:parent.floorOne(\""+unitName+"\","+i+");'>第"+i+"层</a></li>";
// }
str = goPage(1,5,nums,unitName);
map.setPopListHtml(str);
map.setPopTabHtml("楼层列表");
// map.setPopAdbHtml("<a style='color: #fff;' href='javascript:parent.goPage(1,6,"+nums+",\""+unitName+"\");'>上一页</a> <a style='color: #fff;' href='javascript:parent.goPage(1,6,"+nums+",\""+unitName+"\");'>下一页</a>");
str = "";
parent.str = "";
}
});
}
var popStr = "";
function floorOne(unitName,houseNum){
$.ajax({
url:'http://localhost:8080/grid/pop/getPopListByHouseNum.do',
type:'post',
data:{"unitName":unitName,"houseNum":houseNum},
dataType:'json',
success:function(result){
if(result != ""){
for(var i=0;i<result.length;i++){
popStr += "<li><a href='javascript:parent.getPopData(\""+result[i].popId+"\",\""+result[i].popName+"\",\""+result[i].popSex+"\","+result[i].popTel+");'>"+result[i].popName+"</a></li>";
}
}else{
popStr += "<li>暂无人口信息!</li>";
}
map.setPopTabHtml("人口列表");
map.setPopListHtml(popStr);
parent.popStr = "";
}
});
}
//上一页,下一页函数
function goPage(pno,pSize,nums,unitName){
var str = "";
var totalPage = 0;//总页数
var pageSize = pSize;//每页多少条
//总共分多少页
if(nums/pageSize > parseInt(nums/pageSize)){
totalPage = parseInt(nums/pageSize)+1;
}else{
totalPage = parseInt(nums/pageSize);
}
var currentPage = pno; //当前页
//开始显示的行
var startRow = (currentPage - 1) * pageSize + 1;
//结束显示的行
var endRow = currentPage * pageSize;
endRow = endRow > nums ? nums : endRow;
for(var i=1;i<(nums+1);i++){
if(i >= startRow && i <= endRow){
str += "<li style='display: block'><a href='javascript:parent.floorOne(\""+unitName+"\","+i+");'>第"+i+"层</a></li>";
}else{
str += "<li style='display: none'><a href='javascript:parent.floorOne(\""+unitName+"\","+i+");'>第"+i+"层</a></li>";
}
}
// str += "<li><b style='color: #fff'>共"+nums+"条记录 分"+totalPage+"页 当前第"+currentPage+"页</b></li>";
if(currentPage > 1){
// str += "<li><a href='#' onClick='goPage("+(1)+",\""+psize+"\")'>首页</a></li>";
str += "<li><a href='javascript:parent.map.setPopListHtml(parent.parent.goPage("+(currentPage-1)+",\""+pSize+"\","+nums+",\""+unitName+"\"));'>上一页</a></li>";
}else{
// str += "<li><b>首页</b></li>";
str += "<li><b>上一页</b></li>";
}
if(currentPage < totalPage){
str += "<li><a href='javascript:parent.map.setPopListHtml(parent.parent.goPage("+(currentPage+1)+",\""+pSize+"\","+nums+",\""+unitName+"\"));'>下一页</a></li>";
// str += "<li><a href='#' onClick='goPage("+(totalPage)+",\""+psize+"\")'>尾页</a></li>";
}else{
str += "<li><b>下一页</b></li>";
// str += "<li><b>尾页</b></li>";
}
return str;
}