0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

easyui 分页功能实现

Last updated at Posted at 2019-06-23
  • 定义一个分页的工具类 (三个参数: 开始下标,每页的size,当前页数 )
PageUtil.java
    //开始下标
	private int startIndex;
	
	//每页的size
	private int pageSize;
	
	//当前页数 
	private int currentPageNo;

	public int getStartIndex() {
		return startIndex;
	}

	public void setStartIndex(int startIndex) {
		this.startIndex = startIndex;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getCurrentPageNo() {
		return currentPageNo;
	}

	public void setCurrentPageNo(int currentPageNo) {
		this.currentPageNo = currentPageNo;
	}

//注意开始下标的获得方式。 
	public PageUtil(int pageSize, int currentPageNo) {
		super();
		
		this.startIndex=(currentPageNo-1)*pageSize;
		this.pageSize = pageSize;
		this.currentPageNo = currentPageNo;
	}

	public PageUtil() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	
	
	
}

  • dao层方法中, 改一个查询的方法, 增加一个获取总页数的方法。
daoImpl.java

//在原有的查询方法中,加一个参数,穿工具类进去 
public List<Enterprise> getEntList(String search_ename, String search_econtact,String search_etel,PageUtil pageUtil) {
		
		//创建一个容器
		List<Enterprise> entList = new ArrayList<Enterprise>();
		
		try {
			String sql = "select * from enterprise where 1=1  ";
			
			//做一个装拼接语句的集合
			ArrayList<Object> al=new ArrayList<Object>();
			
			//动态拼接
			
			if(search_ename!=null&&!search_ename.equals("")) {
				sql=sql+" and ename like ? ";
			
				al.add('%'+ search_ename + '%');	
				
				
			}
			
			if(search_econtact!=null&&!search_econtact.equals("")) {
				sql=sql+" and econtact like ? ";
				
				al.add('%'+search_econtact+'%');				
				
			}
			
			if(search_etel!=null&&!search_etel.equals("")) {
				sql=sql+" and etel like ? ";
				
				al.add("%"+search_etel+"%");				
				
			}
			
			
///!!!!!!!! 此处为,sql语句,问号为 开始下标,每页记录数 

			sql=sql+" limit ?,?";
			
			//开始下标,每页记录数  (从工具类中获取)
			al.add(pageUtil.getStartIndex());
			al.add(pageUtil.getPageSize());
			
			//集合转数组
			Object[] obj = al.toArray();
				
			ResultSet rs = DBUtils.query(sql, obj);
					
			while(rs.next()) {
				Enterprise ent = new Enterprise();
				ent.setEno(rs.getInt("eno"));
				ent.setEname(rs.getString("ename"));
				ent.setEaddress(rs.getString("eaddress"));
				ent.setEcontact(rs.getString("econtact"));
				ent.setEtel(rs.getString("etel"));
				ent.setEstatus(rs.getInt("estatus"));
				ent.setEmemo(rs.getString("ememo"));
				
				entList.add(ent);
			}
			
			return entList;
		} catch (SQLException e) {
			e.printStackTrace();
			
		}				
		return null;
	}

  • dao层方法中, 再 增加一个获取总页数的方法。
daoImpl.java

//参数3个,都是搜索栏里做多项查询的条件。
public int getPageTotal(String search_ename, String search_econtact, String search_etel) {
		//创建一个容器
		//List<Enterprise> entList = new ArrayList<Enterprise>();
		
		try {
//注意这个查总数的sqL语句!!!!!!!!!!!
			String sql = "select count(*) as total from enterprise where 1=1  ";
			
			//做一个装拼接语句的集合
			ArrayList<Object> al=new ArrayList<Object>();
			
			//动态拼接
			
			if(search_ename!=null&&!search_ename.equals("")) {
				sql=sql+" and ename like ? ";
			
				al.add('%'+ search_ename + '%');	
				
				
			}
			
			if(search_econtact!=null&&!search_econtact.equals("")) {
				sql=sql+" and econtact like ? ";
				
				al.add('%'+search_econtact+'%');				
				
			}
			
			if(search_etel!=null&&!search_etel.equals("")) {
				sql=sql+" and etel like ? ";
				
				al.add("%"+search_etel+"%");				
				
			}
								
			
			//集合转数组
			Object[] obj = al.toArray();
			
			ResultSet rs = DBUtils.query(sql, obj);
					
			if(rs.next()) {
//				Enterprise ent = new Enterprise();
//				ent.setEno(rs.getInt("eno"));
//				ent.setEname(rs.getString("ename"));
//				ent.setEaddress(rs.getString("eaddress"));
//				ent.setEcontact(rs.getString("econtact"));
//				ent.setEtel(rs.getString("etel"));
//				ent.setEstatus(rs.getInt("estatus"));
//				ent.setEmemo(rs.getString("ememo"));
				
				//entList.add(ent);
				
				return rs.getInt("total");
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
			
		}				
		return 0;
	}

  • Servlet中, 接收数据:
EntServlet.java
 if ("entList".equals(method)&&from==null) {
			//1、接收参数			
			String  search_ename=request.getParameter("search_ename");
			String  search_econtact=request.getParameter("search_econtact");
			String  search_etel=request.getParameter("search_etel");		
			
			
			//为分页接受的参数  page:当前页数; rows:每页的size .
			int page=request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
			int rows=request.getParameter("rows") == null ? 10 :Integer.parseInt(request.getParameter("rows"));
			
			
			PageUtil pageUtil=new PageUtil(rows,page);
						
			
			//2、调用dao层  查询
			List<Enterprise> entList= entdao.getEntList(search_ename,search_econtact,search_etel,pageUtil);
			
			//获取总记录数
			int total=entdao.getPageTotal(search_ename, search_econtact, search_etel);
			
			
			//做一个map   要回传的是 : total: 总的记录数; rows: 查询出来的集合。 
			Map <String, Object> map=new HashMap<String, Object>();
			
			map.put("rows", entList);
			map.put("total", total);
			
			
			//3、json转换数据
			JSONObject jsonMap =  JSONObject.fromObject(map);		
			
			//4、发送数据
			response.getWriter().println(jsonMap);
			
		} 

  • 页面中,设置分页控件的代码
student.html
  //设置分页控件 
	    var p = $('#dataList').datagrid('getPager'); 
	    $(p).pagination({ 	    
	        pageSize: 10,//每页显示的记录条数,默认为10 
	        pageList: [10,20,30,50,100],//可以设置每页记录条数的列表 
	        beforePageText: '第',//页数文本框前显示的汉字 
	        afterPageText: '页    共 {pages} 页', 
	        displayMsg: '当前显示 {from} - {to} 条记录   共 {total} 条记录', 
	    });
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?