js分页,后台传入json列表

html代码

	 <table class="table">
                                <thead>
                                <tr style="text-align: center;">
                                    <th >员工编号</th>
                                    <th>姓名</th>
                                    <th>性别</th>
                                    <th>身份证号</th>
                                    <th>政治面貌</th>
                                    <th>职位</th>
                                    <th>员工状态</th>
                                    <th>学历</th>
                                    <th>专业</th>
                                    <th style="color: #0c87eb;">修改</th>
                                    <th style="color: #0c87eb;">离职</th>
                                </tr>
                                </thead>
                                <tbody id="tbody">

                                </tbody>
                            </table>
                            <div id="page" style="margin-right: auto;margin-left: auto;width: 20%;">
                                <div id="previous" class="flex-1"><button type="button"  "previousPage();">上一页</button></div>
                                <div class="flex-1">第<span id="cur">1</span>页</div>
                                <div class="flex-1">共<span id="item">1</span>页</div>
                                <div id="next" class="flex-1"><button type="button"  "nextPage();">下一页</button></div>
                            </div>
</body>

servlet写出数据

   TIinfoEntity info = new TIinfoEntity();//创建实体类(自定义实体类)
   //将查询条件存入实体类
    info.set_Ename(req.getParameter("name"));
    info.set_politicStatus(req.getParameter("politicStatus"));
    info.set_job(req.getParameter("job"));
    info.set_major(req.getParameter("major"));
    info.set_education(req.getParameter("education"));
    
    IdbProcessor pr = new dbProcessor();//调用数据处理接口(自定义查询数据库方法类)
    List<TIinfoEntity> list =pr.InfoSelect(info);//调用查询方法,并将返回值赋值给list
    Gson gson = new Gson();//使用gson.jar包的工具类
    String json = gson.toJson(list);/将list转为json对象字符串,例:'[ { key:value,key:value } , {key:value,key:value } ]'///
    输出方法一:
		        sverlet:   resp.getWriter().write(json); //输出json字符串,我是用的ajax提交并接收
		        **js**:
		        function selectInfo() {
		        $.ajax({
		         url:"test",
		         data:$("#Sinfo").serialize(),
		         type:"post",
		         success : function(Result)这里的Result就是sverlet输出的json字符串
		         {
		             PageLoad(Result);
		         },
		         error : function()
		         {
		             alert("错误消息提示");
		         },
		         async:false
		     });
		 }

输出方法二:
将json字符串存入session,使用jsp赋值给
servlet:
HttpSession hs = req.getSession();//创建session对象
hs.setAttribute(“list”,list);//写入键值对
jsp:

js代码

----------初始化页面---------------
function PageLoad(list){   使用方法一可直接使用传入的list
		   使用方法二需要执行以下操作,并删除括号中的list:
		                 var list = list();///执行list方法
		    -----------------------------------
			var numPage=1; //初始化总页数
			var currentPage=1;//初始化当前页数
			var currentvalue=0;//初始化初始循环变量
			var endvalue;//循环结束变量
			var skipnum=5;//每页显示条数
			var tbody=document.getElementById("tbody"); //显示内容元素框
            var previous=document.getElementById("previous");//上一页按钮框
            var next = document.getElementById("next"); //下一页按钮框
            var spancur = document.getElementById("cur"); //当前页
            var spanitem = document.getElementById("item");//总页数
			sessionStorage.setItem("list",list);//存储session对象
			list=eval(list);//解析json字符串
			if(list.length<=skipnum){ //查询条数小于或等于显示条数执行
				previous.innerHTML="";
				next.innerHTML="";
				numPage=1;
				 currentPage=1;
				 var str="";
			       for(var i=0;i<list.length;i++){//显示数据拼接
			           str=str+"<tr><td>"+list[i]._E_id+"</td><td>"+list[i]._Ename+"</td><td>"+list[i]._sex+"</td><td>"+list[i]._identity+"</td><td>"+list[i]._politicStatus+"</td><td>"+list[i]._job+"</td><td>"+list[i]._workingState+"</td><td>"+list[i]._education+"</td><td>"+list[i]._major+"</td><td>\n" +
			               "                                            <button \"upDate(this);\" class=\"btn btn-primary\" style=\"width: 90px; height: 30px\">修改</button>\n" +
			               "                                        </td>\n" +
			               "                                        <td><button \"departure(this);\" class=\"btn btn-primary\" style=\"width: 90px; height: 30px\">离职</button></td>\n</tr>";
			       }
                
				
			} else{  查询条数大于显示条数
				next.innerHTML="<button type=\"button\"  \"nextPage();\">下一页</button>";
		        previous.innerHTML="";
				总页数/
			    if(list.length%skipnum==0){ 
				    numPage=list.length/skipnum;
			    }
			    if(list.length%skipnum!=0){
			    	numPage=parseInt(list.length/skipnum)+1;
			    }
			   
			    endvalue=currentPage*skipnum;循环结束值=当前页数*每页显示条数

			    var str="";
			       for(var i=currentvalue;i<endvalue;i++){
			           str=str+"<tr><td>"+list[i]._E_id+"</td><td>"+list[i]._Ename+"</td><td>"+list[i]._sex+"</td><td>"+list[i]._identity+"</td><td>"+list[i]._politicStatus+"</td><td>"+list[i]._job+"</td><td>"+list[i]._workingState+"</td><td>"+list[i]._education+"</td><td>"+list[i]._major+"</td><td>\n" +
			               "                                            <button \"upDate(this);\" class=\"btn btn-primary\" style=\"width: 90px; height: 30px\">修改</button>\n" +
			               "                                        </td>\n" +
			               "                                        <td><button \"departure(this);\" class=\"btn btn-primary\" style=\"width: 90px; height: 30px\">离职</button></td>\n</tr>";
			       }
			       
			    
			}
			 tbody.innerHTML=str;  显示数据
			 spancur.innerHTML=currentPage;显示当前页数
			 spanitem.innerHTML=numPage;显示总页数
			 var jsonV={  
			 	"numPage":numPage,总页数
			 	"currentPage":currentPage,当前页数
			 	"currentvalue":currentvalue,当前循环初始值
			 	"endvalue":endvalue,循环结束值
			 	"skipnum":skipnum 每页显示条数
			 }
			 jsonV=JSON.stringify(jsonV);//将json对象转换为json字符串
			 sessionStorage.setItem("jsonV",jsonV);存入session对象
		}

----------------上一页----------------------
function previousPage(){
var jsonV=sessionStorage.getItem(“jsonV”);
jsonV=JSON.parse(jsonV);
var list=sessionStorage.getItem(“list”);
list=eval(list);
var numPage=jsonV.numPage;
var currentPage=jsonV.currentPage;
var currentvalue=jsonV.currentvalue;
var endvalue=jsonV.endvalue;
var skipnum=jsonV.skipnum;
var tbody=document.getElementById(“tbody”);
var previous=document.getElementById(“previous”);
var next = document.getElementById(“next”);
var spancur = document.getElementById(“cur”);
var spanitem = document.getElementById(“item”);
next.innerHTML="<button type=“button” “nextPage();”>下一页";
currentPage=currentPage-1;
currentvalue=currentvalue-skipnum;
endvalue=endvalue-skipnum;

    if(currentvalue==0){ 当期页为第一页时隐藏上一页按钮,可用button.hide()
    	previous.innerHTML="";
    }
    
                   var str="";
			       for(var i=currentvalue;i<endvalue;i++){
			           str=str+"<tr><td>"+list[i]._E_id+"</td><td>"+list[i]._Ename+"</td><td>"+list[i]._sex+"</td><td>"+list[i]._identity+"</td><td>"+list[i]._politicStatus+"</td><td>"+list[i]._job+"</td><td>"+list[i]._workingState+"</td><td>"+list[i]._education+"</td><td>"+list[i]._major+"</td><td>\n" +
			               "                                            <button \"upDate(this);\" class=\"btn btn-primary\" style=\"width: 90px; height: 30px\">修改</button>\n" +
			               "                                        </td>\n" +
			               "                                        <td><button \"departure(this);\" class=\"btn btn-primary\" style=\"width: 90px; height: 30px\">离职</button></td>\n</tr>";
			       }
             tbody.innerHTML=str;
			 spancur.innerHTML=currentPage;
			 spanitem.innerHTML=numPage;
			 var jsonV={
			 	"numPage":numPage,
			 	"currentPage":currentPage,
			 	"currentvalue":currentvalue,
			 	"endvalue":endvalue,
			 	"skipnum":skipnum
			 }
			 jsonV=JSON.stringify(jsonV);
			 sessionStorage.setItem("jsonV",jsonV);

}

---------------------下一页-------------------------
function nextPage(){
var jsonV=sessionStorage.getItem(“jsonV”);
jsonV=JSON.parse(jsonV);
var list=sessionStorage.getItem(“list”);
list=eval(list);
var numPage=jsonV.numPage;
var currentPage=jsonV.currentPage;
var currentvalue=jsonV.currentvalue;
var endvalue=jsonV.endvalue;
var skipnum=jsonV.skipnum;
var tbody=document.getElementById(“tbody”);
var previous=document.getElementById(“previous”);
var next = document.getElementById(“next”);
var spancur = document.getElementById(“cur”);
var spanitem = document.getElementById(“item”);
previous.innerHTML=‘上一页’;
currentPage=currentPage+1;
currentvalue=currentvalue+skipnum;
endvalue=endvalue+skipnum;

    if(currentPage==numPage){如果当前页是最后一页,隐藏下一页按钮
    	next.innerHTML="";
    }
                   var str="";
			       for(var i=currentvalue;i<endvalue;i++){
			           str=str+"<tr><td>"+list[i]._E_id+"</td><td>"+list[i]._Ename+"</td><td>"+list[i]._sex+"</td><td>"+list[i]._identity+"</td><td>"+list[i]._politicStatus+"</td><td>"+list[i]._job+"</td><td>"+list[i]._workingState+"</td><td>"+list[i]._education+"</td><td>"+list[i]._major+"</td><td>\n" +
			               "                                            <button \"upDate(this);\" class=\"btn btn-primary\" style=\"width: 90px; height: 30px\">修改</button>\n" +
			               "                                        </td>\n" +
			               "                                        <td><button \"departure(this);\" class=\"btn btn-primary\" style=\"width: 90px; height: 30px\">离职</button></td>\n</tr>";
			               
			               if(i==list.length-1){如果这是最后一条结束循环
			               	  break;
			               }
			       }
             tbody.innerHTML=str;
			 spancur.innerHTML=currentPage;
			 spanitem.innerHTML=numPage;
			 var jsonV={
			 	"numPage":numPage,
			 	"currentPage":currentPage,
			 	"currentvalue":currentvalue,
			 	"endvalue":endvalue,
			 	"skipnum":skipnum
			 }
			 jsonV=JSON.stringify(jsonV);
			 sessionStorage.setItem("jsonV",jsonV);

}

如有疑问可相互交流,大佬勿喷。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值