ajax分页查询

匿名 (未验证) 提交于 2019-12-02 23:26:52

分页查询的工具类

package util;  public class Pagination { 	private int ye; 	private int maxYe; 	private int beginYe; 	private int endYe; 	private int begin;   	public Pagination(int ye, int count, int numInPage, int numOfPage) { 		if (count != 0) { 			this.ye = ye; 			if (this.ye <= 1) { 				this.ye = 1; 			} 			maxYe = count % numInPage == 0 ? count / numInPage : count / numInPage + 1;  			if (this.ye >= maxYe) { 				this.ye = maxYe; 			}  			beginYe = this.ye - numOfPage / 2; 			if (beginYe <= 1) { 				beginYe = 1; 			} 			endYe = beginYe + numOfPage - 1;  			if (endYe >= maxYe) { 				endYe = maxYe; 				beginYe = endYe - numOfPage + 1; 			} 			if (beginYe <= 1) { 				beginYe = 1; 			} 			begin = (this.ye - 1) * numInPage; 		} 	}  	public int getBegin() { 		return begin; 	}  	public int getYe() { 		return ye; 	}  	public int getMaxYe() { 		return maxYe; 	}  	public int getBeginYe() { 		return beginYe; 	}  	public int getEndYe() { 		return endYe; 	}  } 

controller层

	@RequestMapping("selectletter.do") 	@ResponseBody 	public Map<String, List<PM00004>> selectletter(@RequestParam(value = "ID40001") String ID40001, 			@RequestParam(value = "ID10001") String ID10001, @RequestParam(value = "NA50001") String NA50001, 			@RequestParam(value = "NA50002") String NA50002, @RequestParam(value = "date1") String date1, 			@RequestParam(value = "date2") String date2, @RequestParam(value = "page") String page) { 		/* 分页插件 */ 		Integer page1 = Integer.parseInt(page); 		int i = 1; 		if (ID40001 == null) { 			i = 0; 		} 			/* 查询分页数据 */ 			int count = produceService.searchCount(ID40001, ID10001, NA50001, NA50002, date1, date2);  			Pagination p = new Pagination(page1, count, constants.EMP_NUM_IN_PAGE, constants.EMP_NUM_OF_PAGE); 			 			//(ye-1)*Constant.EMP_NUM_IN_PAGE+1和ye*Constant.EMP_NUM_IN_PAGE分别是区间查询的开始位置和结束位置 			 			List<PM00004> list1 = produceService.selectletter(ID40001, ID10001, NA50001, NA50002, date1, date2, 					page1 * 2 - 1, page1 * 2); 					 			//map规定只能放list集合 			List list2 = new ArrayList<>(); 			list2.add(p); 			List list3 = new ArrayList<>(); 			list3.add(i); 			Map<String, List<PM00004>> map = new HashMap<String, List<PM00004>>(); 			map.put("flag", list1); 			map.put("flag2", list2); 			map.put("flag3", list3);  			return map; 			} 

后面的都差不多就不写了,主要是前端
图片上的是普通遍历,a标签携带数据跳转方法,去后台查询
以下是ajax遍历分页,每次onclick走的是ajax的方法

$.ajax({                url:"selectletter.do",                type:"post",                data:{"ID40001":a,"ID10001":b,"NA50001":c,"NA50002":d,"date1":e,"date2":f,"page":page},                dataType:"json",                success:function(data){             	 //onclick携带数据(页数)是走的ajax方法,不刷新页面              	  /* 分页查询 */                   var pagingHtmlStr = "<ul class='pagination'>"+ 	      		                          "<li id='pre' ><a href='javascript:void(0);' 'selectLetter("+data.flag2[0].ye+"-1)'>&laquo;</a></li>"; 	      	                              for(var s=1;s<=data.flag2[0].endYe;s++){  	      		                              pagingHtmlStr = pagingHtmlStr + 	      		                              "<li ><a href='javascript:void(0);' 'selectLetter("+s+")'>"+s+"</a></li>" 			 	                          } 	      	                              pagingHtmlStr = pagingHtmlStr + 	      	                              "<li id='next'><a href='javascript:void(0);' 'selectLetter("+data.flag2[0].ye+"+1)'>&raquo;</a></li>"+ 			                          "</ul>";    	              /* 去重 */      	          $("#paging").empty();      	          拼接在body里      	          $("#paging").append(pagingHtmlStr); 			   }  		 });  

sql语句

select ID81001,NA81003,NA81001,SU30001,KB10001 from(select ID81001,NA81003,NA81001,SU30001,KB10001,rownum AS RQ from MATERIEL)where RQ between #{begin} and #{end} 

效果图

文章来源: https://blog.csdn.net/weixin_43478296/article/details/88868321
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!