现在的位置: 首页 > 综合 > 正文

dhtmlxGrid分页查询,条件查询实例

2014年06月23日 ⁄ 综合 ⁄ 共 12477字 ⁄ 字号 评论关闭

使用jquery的ajax get将页面条件请求到后台,取得数据库数据,分页查询,返回前台grid中。

引入所需文件:

		<script>window.dhx_globalImgPath = "dhtmlxCombo/codebase/imgs/";</script>
		<link rel="stylesheet" href="css/dhtmlxgrid.css" type="text/css"></link>
		<link rel="stylesheet" type="text/css"
			href="js/pagination/jquery.pagination/pagination.css" />
		<script type="text/javascript" src="js/jquery-1.6.1.js"></script>
		<script type="text/javascript"
			src="js/pagination/jquery.pagination/jquery.pagination.js"></script>
		<script type="text/javascript" src="js/dhtmlxgrid.js"></script>
		<link rel="stylesheet" href="css/dhtmlxcalendar.css" type="text/css"></link>
		<link rel="stylesheet" href="css/dhtmlxcalendar_dhx_blue.css"
			type="text/css"></link>
		<link rel="stylesheet" type="text/css"
			href="dhtmlxCombo/codebase/dhtmlxcombo.css" />
		<link rel="stylesheet" type="text/css"
			href="css/dhtmlxgrid_dhx_custom.css" />
		<link href="css/storemanage.css" type="text/css" rel="stylesheet" />
		<link rel="stylesheet" href="css/dhtmlxgrid.css" type="text/css"></link>
		<script type="text/javascript"
			src="dhtmlxGrid/codebase/excells/dhtmlxgrid_excell_cntr.js"></script>
		<script type="text/javascript"
			src="dhtmlxGrid/codebase/ext/dhtmlxgrid_filter.js"></script>
		<script type="text/javascript"
			src="dhtmlxGrid/codebase/ext/dhtmlxgrid_validation.js"></script>
		<script type="text/javascript" src="js/dhtmlxcalendar.js"></script>
		<script type="text/javascript" src="js/wpCalendar.js"></script>

js代码

		<script>
		var mygrid;
		var combo_unite;
		var myCalendar;
		var combo_intype;
		var intype='';
		var insheetno='';
		var date1='';
		var date2='';
		var unitname='';
		var sheetmname='';
		var checkmname='';
		$(document).ready(function(){
	    	adjustDisp();
			mygrid = new dhtmlXGridObject('grid_storein');
			mygrid.enableAutoWidth(true);
			mygrid.setImagePath("dhtmlxGrid/codebase/imgs/");
			mygrid.setSkin("dhx_custom");
			mygrid.setHeader("入库单号,往来单位,入库类型,制单人,制单日期,金额,审核人,审核时间,记账人,记账日期,备注");
			mygrid.setInitWidths("*,*,*,*,*,*,*,*,*,*,*");
			mygrid.setColTypes("ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro");
			mygrid.setColAlign("left,left,left,left,left,left,left,left,left,left,left");
			mygrid.init();
			combo_intype = new dhtmlXCombo("combo_zone1", "alfa1", 105);
			combo_intype.enableFilteringMode(true);
			//combo_intype.attachEvent("comboFilter",comboFilter(13, json, 'combo_intype', 'py', true, true));
 		 	combo_unite = new dhtmlXCombo("combo_zone2", "alfa2", 155);
			combo_unite.enableFilteringMode(true);
			//combo_unite.attachEvent("comboFilter",comboFilter(13, json, 'combo_intype', 'py', true, true));
		 	//  y.addOption([[1, 'aaaa', "color:red"], [2, 'bbbb'], [3, 'cccc'], [4, 'dddd'], [5, 'eeee']]);
		 	combo1();
			combo2();
		  	//alert('1');
			myCalendar = new dhtmlXCalendarObject(["date1", "date2"]);
			loadCount_no();                                                                                                                                                                                                                                                                       
		});
		
		function loadCount_no(){
		    intype=combo_intype.getComboText();// 取得页面上条件,入库类型  作为查询条件传到后台
			insheetno=$('#insheetno').val();// 取得页面上条件,入库单号   作为查询条件传到后台
			date1=$('#date1').val();// 取得页面上条件,入库日期1   作为查询条件传到后台
			date2=$('#date2').val();// 取得页面上条件,入库日期2   作为查询条件传到后台
			unitname=combo_unite.getComboText();// 
			// alert($('#sheetmname').val());
			sheetmname=$('#sheetmname').val();// 取得页面上条件,制单人
			checkmname=$('#checkmname').val();// 取得页面上条件,审核人
			if(intype==''||intype==null){
				intype='';
			}
			if(insheetno==''||insheetno==null){
				insheetno='';
			}
			if(date1==''||insheetno==null){
				date1='';
			}
			if(date2==''||insheetno==null){
				date2='';
			}
			if(unitname==''||unitname==null){
				unitname='';
			}
			if(sheetmname==''||sheetmname==null){
				sheetmname='';
			}
			if(checkmname==''||checkmname==null){
				checkmname='';
			}
			//intype = encodeURI(encodeURI(intype));
			//insheetno = encodeURI(encodeURI(insheetno));		
			//unitname = encodeURI(encodeURI(unitname));
			//date1 = encodeURI(encodeURI(date1));
			//date2 = encodeURI(encodeURI(date2));
			//sheetmname = encodeURI(encodeURI(sheetmname));		
			//checkmname = encodeURI(encodeURI(checkmname));
			
			intype=encodeURIComponent(intype);
			insheetno=encodeURIComponent(insheetno);
			unitname=encodeURIComponent(unitname);
			date1=encodeURIComponent(date1);
			date2=encodeURIComponent(date2);
			sheetmname=encodeURIComponent(sheetmname);
			checkmname=encodeURIComponent(checkmname);
			$.ajax({
				async:false,
				cache:false,
				type:"GET",
				url:"sick3/getCounttnb.htm?intype="+intype+"&insheetno="+insheetno+"&unitname="+unitname+"&date1="+date1+"&date2="+date2+"&sheetmname="+sheetmname+"&checkmname="+checkmname,
				error:function(){
					alert("服务器内部错误!");
				},
				success:function(data){ 
					if(data=='fail'){
						alert("获取数据失败!");
					}else{
						//alert(data);
						 createPagination_no(data);
					}
				}
			});
		}

		var pageSize = 10;
		var pageIndex = 0;
		function createPagination_no(pageCount){//创建分页标签,pageCount为返回的记录数
			if(pageCount==0){
				pageCount=0;
			}
			//分页,pageCount是总条目数,这是必选参数,其它参数都是可选 
			$("#pagination").pagination(pageCount, { 
				callback: pageCallback_no, 
				prev_text: '上一页', //上一页按钮里text 
				next_text: '下一页', //下一页按钮里text 
				items_per_page: pageSize, //显示条数 
				num_display_entries: 6, //连续分页主体部分分页条目数 
				current_page: pageIndex, //当前页索引 
				num_edge_entries: 2 //两侧首尾分页条目数 
			});
		}
		function pageCallback_no(index, jq){//翻页回调
			pageIndex = index; //当前页索引
			loadgrid_no(index); 
			return false;
		}

		//条件查询获取当前页未处理报表
		function loadgrid_no(index){
			intype=combo_intype.getComboText();
			insheetno=$('#insheetno').val();
			date1=$('#date1').val();
			date2=$('#date2').val();
			unitname=combo_unite.getComboText();
			sheetmname=$('#sheetmname').val();
			checkmname=$('#checkmname').val();
			if(intype==''||intype==null){
				intype='';
			}
			if(insheetno==''||insheetno==null){
				insheetno='';
			}
			if(date1==''||insheetno==null){
				date1='';
			}
			if(date2==''||insheetno==null){
				date2='';
			}
			if(unitname==''||unitname==null){
				unitname='';
			}
			if(sheetmname==''||sheetmname==null){
				sheetmname='';
			}
			if(checkmname==''||checkmname==null){
				checkmname='';
			}
			//intype = encodeURI(encodeURI(intype));
			//insheetno = encodeURI(encodeURI(insheetno));		
			//unitname = encodeURI(encodeURI(unitname));
			//date1 = encodeURI(encodeURI(date1));
			//date2 = encodeURI(encodeURI(date2));
			//sheetmname = encodeURI(encodeURI(sheetmname));		
			//checkmname = encodeURI(encodeURI(checkmname));
			
			intype=encodeURIComponent(intype);
			insheetno=encodeURIComponent(insheetno);
			unitname=encodeURIComponent(unitname);
			date1=encodeURIComponent(date1);
			date2=encodeURIComponent(date2);
			sheetmname=encodeURIComponent(sheetmname);
			checkmname=encodeURIComponent(checkmname);
			
			if(index!=0){
				index = pageIndex;
			}
			
			//mygrid.clearAndLoad("sick3/loadtnb.htm");
			//alert('3');
			//alert(intype);
			mygrid.clearAndLoad("sick3/loadtnb.htm?index="+index+"&size="+pageSize+"&intype="+intype+"&insheetno="+insheetno+"&unitname="+unitname+"&date1="+date1+"&date2="+date2+"&sheetmname="+sheetmname+"&checkmname="+checkmname);
		}
		function adjustDisp(){//高度自适应,取相应的数据
			var avalibleHeight = $(window).height()-250;
			if(avalibleHeight>260){
				pageSize = Math.floor((avalibleHeight-27)/26);
				$("#grid_newApply").css("height",avalibleHeight);
			}
		 }
		
		function combo1(){
			$.ajax({
				type:"post",
				url: "sick3/hellohello.htm",
				cache: false,
				error:function(){
					// alert("没有该病人记录!");
				},
				success: function(data){
					if(data=="fail"){
						alert("错误");
					}else{
						//alert(data[0].contents);
						var json = eval("{" + data + "}");
						//alert(json[0].contents);
						for(var i=0;i<json.length;i++){
							// alert(json[i].contents);
							combo_intype.addOption(i,json[i].contents);
						}
					}
				}
			});
	}
			function combo2(){
			$.ajax({
				type:"post",
				url: "sick3/combo2.htm",
				cache: false,
				error:function(){
					//alert("没有该病人记录!");
				},
				success: function(data){
					if(data=="fail"){
						alert("错误");
					}else{
						//alert(data[0].contents);
						var json = eval("{" + data + "}");
						//alert(json[0].contents);
						for(var i=0;i<json.length;i++){
							//alert(json[i].contents);
							combo_unite.addOption(i,json[i].contents);
						}
					}
				}
			});
	}
		function dosearch(){
		loadCount_no();
		}

文本框,combo的html略,放table里设计界面更整洁,

<div id="grid_storein" style="height: 389px; width: 900px;"></div>
<div id="pagination" style="position: relative; margin-left: 580px"></div>

后台action代码(传中文get请求需要转码)

	@RequestMapping(value = "getCounttnb", method = RequestMethod.GET)
	public void getCount(HttpServletRequest request,HttpServletResponse response,String status) throws IOException {
		response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("utf-8");
		List<Map> list = null;
		DBOperator db = null;
		PrintWriter pw = response.getWriter();
		int count = 0;
		String intype = request.getParameter("intype");
//		System.out.println(intype);
		String insheetno = request.getParameter("insheetno");
		String date1 = request.getParameter("date1");
		String date2 = request.getParameter("date2");
		String unitname = request.getParameter("unitname");
		String sheetmname = request.getParameter("sheetmname");
		String checkmname = request.getParameter("checkmname");
		try {
			db = new DBOperator();
			String sql="select  count(*) as count from (" +
				"select s.insheetno,s.unitname,s.intype,s.sheetmname," +
				"to_char(s.sheetdate, 'yyyy-MM-dd'),d.inqty * d.pprice as price," +
				"s.checkmname,to_char(s.checkdate, 'yyyy-MM-dd'),s.regmname,to_char(s.regdate, 'yyyy-MM-dd'),s.comments " +
				"from mw_insheets s, mw_insheets_details d where s.insheetno = d.insheetid ";
			if(insheetno!=null &&!"".equals(insheetno)){
//				insheetno=URLEncoder.encode(insheetno, "utf-8");
				insheetno=new String(insheetno.getBytes("iso-8859-1"), "utf-8");
				sql+=" and s.insheetno='"+insheetno+"'";
			}
	        if(intype!=null &&!"".equals(intype)){
//	        	intype=URLEncoder.encode(intype, "utf-8");
	        	intype=new String(intype.getBytes("iso-8859-1"), "utf-8");
	        	sql+=" and s.intype='"+intype+"'";
	        	System.out.println(intype);
	        }
	        if(date1!=null &&!"".equals(date1)){
	        	sql += " and to_char(s.sheetdate,'yyyy-mm-dd')>='"+date1+"'";
	        }
	        if(date2!=null &&!"".equals(date2)){
	        	sql += " and to_char(s.sheetdate,'yyyy-mm-dd')<='"+date2+"'";
	        }
	        if(unitname!=null &&!"".equals(unitname)){
//	        	unitname=URLEncoder.encode(unitname, "utf-8");
	        	unitname=new String(unitname.getBytes("iso-8859-1"), "utf-8");
	        	sql+=" and s.unitname='"+unitname+"'";
	        }
	        if(sheetmname!=null &&!"".equals(sheetmname)){
//	        	sheetmname=URLEncoder.encode(sheetmname, "utf-8");
	        	sheetmname=new String(sheetmname.getBytes("iso-8859-1"), "utf-8");
	        	sql+=" and s.sheetmname='"+sheetmname+"'";
	        }
	        if(checkmname!=null &&!"".equals(checkmname)){
//	        	checkmname=URLEncoder.encode(checkmname, "utf-8");
	        	checkmname=new String(checkmname.getBytes("iso-8859-1"), "utf-8");
	        	sql+=" and s.checkmname='"+checkmname+"'";
	        }	       
	        	sql+=")";
			list = db.find(sql);
			db.commit();
			count=Integer.valueOf(String.valueOf(list.get(0).get("count")));
			pw.print(count);
		}catch(Exception e){
			e.printStackTrace();
			pw.print("fail");
		}finally{
			db.freeCon();
		}
		pw.flush();
		pw.close();
	}
	 //返回疾病结果
	@RequestMapping(value = "loadtnb", method = RequestMethod.GET)
	public void loadGrid(HttpServletRequest request,HttpServletResponse response,String status) throws IOException {
		response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("utf-8");
	    int Pagesize = Integer.parseInt(request.getParameter("size"));
		int index = Integer.parseInt(request.getParameter("index"));
		String intype = request.getParameter("intype");
		String insheetno = request.getParameter("insheetno");
		String date1 = request.getParameter("date1");
		String date2 = request.getParameter("date2");
		String unitname = request.getParameter("unitname");
		String sheetmname = request.getParameter("sheetmname");
		String checkmname = request.getParameter("checkmname");
		String pagingSql1 = "select OHYEAH.* from (select OHNO.*,rownum no from ("; // 用于分页// 段1
		String pagingSql2 = ") OHNO where rownum <= ?) OHYEAH where no > ?"; // 用于分页段2
		String sql = "select s.insheetno,s.unitname,s.intype,s.sheetmname,to_char(s.sheetdate,'yyyy-MM-dd') as sheetdate," +
				"d.inqty*d.pprice as price,s.checkmname,to_char(s.checkdate,'yyyy-MM-dd') as checkdate,s.regmname,to_char(s.regdate,'yyyy-MM-dd') as regdate,s.comments " +
				"from mw_insheets s,mw_insheets_details d where s.insheetno=d.insheetid ";
		if(insheetno!=null &&!"".equals(insheetno)){
//			insheetno=URLEncoder.encode(insheetno, "utf-8");
			insheetno=new String(insheetno.getBytes("iso-8859-1"), "utf-8");
			sql+=" and s.insheetno='"+insheetno+"'";
		}
        if(intype!=null &&!"".equals(intype)){
//        	intype=URLEncoder.encode(intype, "utf-8");
        	intype=new String(intype.getBytes("iso-8859-1"), "utf-8");
        	sql+=" and s.intype='"+intype+"'";
        	System.out.println(intype);
        }
        if(date1!=null &&!"".equals(date1)){
        	sql += " and to_char(s.sheetdate,'yyyy-mm-dd')>='"+date1+"'";
        }
        if(date2!=null &&!"".equals(date2)){
        	sql += " and to_char(s.sheetdate,'yyyy-mm-dd')<='"+date2+"'";
        }
        if(unitname!=null &&!"".equals(unitname)){
//        	unitname=URLEncoder.encode(unitname, "utf-8");
        	unitname=new String(unitname.getBytes("iso-8859-1"), "utf-8");
        	sql+=" and s.unitname='"+unitname+"'";
        }
        if(sheetmname!=null &&!"".equals(sheetmname)){
//        	sheetmname=URLEncoder.encode(sheetmname, "utf-8");
        	sheetmname=new String(sheetmname.getBytes("iso-8859-1"), "utf-8");
        	sql+=" and s.sheetmname='"+sheetmname+"'";
        }
        if(checkmname!=null &&!"".equals(checkmname)){
//        	checkmname=URLEncoder.encode(checkmname, "utf-8");
        	checkmname=new String(checkmname.getBytes("iso-8859-1"), "utf-8");
        	sql+=" and s.checkmname='"+checkmname+"'";
        }
		DBOperator db = null;
		try {
			db = new DBOperator();
			List  list = db.find(pagingSql1+sql+pagingSql2,new Object[]{Pagesize*index+Pagesize,Pagesize*index});
			response.setContentType("text/xml;charset=utf-8");
			PrintWriter pw = null;
			pw = response.getWriter();
			String vmpagckage = "com/cpinfo/learn/template/";
			String vmname = "hello.vm";
			String vm = VelocityUtils.generateGridVm(vmpagckage, vmname,"MW_hello", list);
			pw.print(vm);
			pw.flush();
			pw.close();
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			db.freeCon();
		}
	}

抱歉!评论已关闭.