dhtmlxgrid分页

引入文件,不全

		<link rel="stylesheet" type="text/css" href="css/dhtmlxgrid.css"/>
		<link rel="stylesheet" type="text/css" href="css/dhtmlxgrid_dhx_custom.css"/>
		<link rel="stylesheet" type="text/css" href="js/jquery.pagination/pagination.css"/>
		<script type="text/javascript" src="js/gl/dhtmlxcommon.js"></script>
		<script type="text/javascript" src="js/gl/dhtmlxgrid.js"></script>
		<script type="text/javascript" src="js/gl/dhtmlxgridcell.js"></script>
		<script type="text/javascript" src="js/gl/jquery-1.6.1.js"></script>
		<script type="text/javascript" src="js/gl/jquery.blockUI.js"></script>
		<script type="text/javascript" src="js/jquery.pagination/jquery.pagination.js"></script>
jsp内容:

		<div id="mainDiv" class="exm_l3" style="margin-top:-5px;height:260px;padding:5px 10px 0px 10px">
   			 	<div id="gridbox" style="width:99.7%;height:220px;border:1px solid white"></div>
				<script>
					var mygrid = new dhtmlXGridObject('gridbox');
					mygrid.setImagePath("imgs/");
					mygrid.setHeader("序号,病人姓名,就诊日期,主诊断,症状,主诉,科室,医生,血压(mmHg),体温(℃)");
					mygrid.setInitWidths("40,70,100,260,*,200,80,70,90,70");
					mygrid.setColTypes("ro,ro,ro,ro,ro,ro,ro,ro,ro,ro");
					mygrid.setColAlign("center,center,center,left,left,left,center,center,center,center");
					mygrid.setSkin("dhx_custom");
					mygrid.setColumnHidden(5,true);
					mygrid.init();
					mygrid.attachEvent("onRowDblClicked",clinicDetailInfo);
				</script>
				<div id="pageDiv" style="position: relative; top:8px;left:5px;float:right;"></div>
   			 </div>

		<input class="btn01" type="button" value="查 询" οnclick="clinicQuantityCount()"/>

js内容

                        var pageSize=10;
			function clinicQuantityCount(){
				//记录查询条件
				deptCode=$("#deptCode").val();
				doctorId=$("#doctorId").val();
				searchStartDate=$("#searchStartDate").val();
				searchEndDate=$("#searchEndDate").val();
				if(searchStartDate!=""&&!/^[1-9][0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/.test(searchStartDate)){
					showError("开始时间输入有误");
					return;
				}
				if(searchEndDate!=""&&!/^[1-9][0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/.test(searchEndDate)){
					showError("结束时间输入有误");
					return;
				}
				$.ajax({
					url:"clinicQuantity/clinicQuantityCount.htm",
					type:"post",
					data:"deptCode="+deptCode+"&doctorId="+doctorId+"&searchStartDate="+searchStartDate+"&searchEndDate="+searchEndDate+"&time="+(new Date()).valueOf(),
					error:function() {
						showError("获取数据失败");
					},
					success:function(reply) {
						if(reply=="fail") {
							showError("获取数据失败");
						}else{
							$("#sign").html("查询结果");
							$("#result").html("("+reply+"条)");
							$("#gridbox").css("display","block");
							$("#pageDiv").css("display","block");
							$("#dataTable").css("display","none");
							$("#pageDiv").pagination(parseInt(reply), {  
						        callback: clinicQuantityData,  
						        items_per_page: pageSize,       //显示条数  
						        prev_text: '上一页',       //上一页按钮里text  
						        next_text: '下一页',       //下一页按钮里text  
						        num_display_entries:8,    //连续分页主体部分分页条目数  
						        num_edge_entries: 2        //两侧首尾分页条目数  
						    });
						}
					}
				});
			}




			function clinicQuantityData(index, jq){
				$.ajax({
					url:"clinicQuantity/clinicQuantityData.htm",
					type:"post",
					data:"curPage="+(index+1)+"&pageSize="+pageSize+"&deptCode="+deptCode+"&doctorId="+doctorId+"&searchStartDate="+searchStartDate+"&searchEndDate="+searchEndDate+"&time="+(new Date()).valueOf(),
					error:function() {
						showError("获取数据失败");
					},
					success:function(reply) {
						if(reply=="fail") {
							showError("获取数据失败");
						}else{
							var jsons=eval("("+reply+")");
							mygrid.clearAll();
							for(var i=0;i<jsons.length;i++){
								var symptoms=jsons[i].symptoms==null?null:jsons[i].symptoms.split("!@#").join(",").substring(0,jsons[i].symptoms.split("!@#").join(",").length-1);
								mygrid.addRow(
									jsons[i].dtmainid,
									[
										(index*pageSize)+i+1,
										jsons[i].patname,
										jsons[i].clcdatestr,
										jsons[i].diagname,
										symptoms,
										jsons[i].chiefcomplaint,
										jsons[i].deptname,
										jsons[i].doctorname,
										(jsons[i].dbp==null?"":jsons[i].dbp)+"/"+(jsons[i].sbp==null?"":jsons[i].sbp),
										(jsons[i].temperature==null?"/":jsons[i].temperature)
									],
									i
								);
							}
							//水平滚动条控制
							if($("#gridbox").find(".objbox")[0].scrollHeight>parseInt($("#gridbox").find(".objbox")[0].style.height)){
								//mygrid.setColWidth(6,"104");
							}else{
								//mygrid.setColWidth(6,"121");
							}
						}
					}
				});
				return false;
			}

后台java内容:

	@RequestMapping(value="/clinicQuantityCount")
	public void clinicQuantityCount(HttpServletRequest request,HttpServletResponse response){
		response.setContentType("text/html;charset=utf-8");
		PrintWriter pw=null;
		DBOperator db=null;
		try{
			pw=response.getWriter();
			db=new DBOperator();
			Bas_hospitals basHospital=(Bas_hospitals)request.getSession().getAttribute("login_hospital");
			String deptCode=request.getParameter("deptCode");
			String doctorId=request.getParameter("doctorId");
			String searchStartDate=request.getParameter("searchStartDate");
			String searchEndDate=request.getParameter("searchEndDate");
			StringBuffer sb=new StringBuffer("select count(*) num from clc_dtmain x,clc_diag y where x.hosnum=? and x.dtmainid=y.dtmainid(+) and y.diagclass = '主诊断'");
			if(!"".equals(searchStartDate)&&"".equals(searchEndDate)){
				sb.append(" and x.clcdate>=to_date('"+searchStartDate+"','yyyy-MM-dd')");
			}else if("".equals(searchStartDate)&&!"".equals(searchEndDate)){
				sb.append(" and x.clcdate<=to_date('"+searchEndDate+"','yyyy-MM-dd')");
			}else if(!"".equals(searchStartDate)&&!"".equals(searchEndDate)){
				sb.append(" and x.clcdate>=to_date('"+searchStartDate+"','yyyy-MM-dd') and x.clcdate<=to_date('"+searchEndDate+"','yyyy-MM-dd')");
			}
			if(!"".equals(deptCode)){
				sb.append(" and x.deptcode='"+deptCode+"'");
			}
			if(!"".equals(doctorId)){
				sb.append(" and x.doctorid='"+doctorId+"'");
			}
			String sql=sb.toString();
			List<Map> list=db.find(sql,new Object[]{basHospital.getHosnum()});
			//System.out.println(list.get(0).get("num"));
			pw.print(list.get(0).get("num"));
			
			db.commit();
		}catch(Exception e){
			db.rollback();
			e.printStackTrace();
			pw.print("fail");
		}finally{
			try {
				db.freeCon();
			} catch (Exception e1) {
				e1.printStackTrace();
			}
		}
	}




	@RequestMapping(value="/clinicQuantityData")
	public void clinicQuantityData(HttpServletRequest request,HttpServletResponse response){
		response.setContentType("text/html;charset=utf-8");
		PrintWriter pw=null;
		DBOperator db=null;
		try{
			pw=response.getWriter();
			db=new DBOperator();
			Bas_hospitals basHospital=(Bas_hospitals)request.getSession().getAttribute("login_hospital");
			int curPage=Integer.parseInt(request.getParameter("curPage"));
			int pageSize=Integer.parseInt(request.getParameter("pageSize"));
			String deptCode=request.getParameter("deptCode");
			String doctorId=request.getParameter("doctorId");
			String searchStartDate=request.getParameter("searchStartDate");
			String searchEndDate=request.getParameter("searchEndDate");
			StringBuffer sb=new StringBuffer("select x.dtmainid,x.patientid,x.chiefcomplaint,x.symptoms,to_char(x.clcdate,'yyyy-MM-dd') clcdatestr,x.deptname,x.doctorname,x.temperature,x.dbp,x.sbp,y.diagname from clc_dtmain x ,clc_diag y where x.hosnum=? and x.dtmainid=y.dtmainid(+) and y.diagclass = '主诊断'");
			if(!"".equals(searchStartDate)&&"".equals(searchEndDate)){
				sb.append(" and x.clcdate>=to_date('"+searchStartDate+"','yyyy-MM-dd')");
			}else if("".equals(searchStartDate)&&!"".equals(searchEndDate)){
				sb.append(" and x.clcdate<=to_date('"+searchEndDate+"','yyyy-MM-dd')");
			}else if(!"".equals(searchStartDate)&&!"".equals(searchEndDate)){
				sb.append(" and x.clcdate>=to_date('"+searchStartDate+"','yyyy-MM-dd') and x.clcdate<=to_date('"+searchEndDate+"','yyyy-MM-dd')");
			}
			if(!"".equals(deptCode)){
				sb.append(" and x.deptcode='"+deptCode+"'");
			}
			if(!"".equals(doctorId)){
				sb.append(" and x.doctorid='"+doctorId+"'");
			}
			sb.append(" order by clcdate desc,dtmainid desc");
			String sql="select a.*,b.patname from (select a.*,rownum num from ("+sb.toString()+") a where rownum<=?) a join bas_patients b on a.num>? and a.patientid=b.patientid and b.hosnum=? order by a.num";
			List<Map> list=db.find(sql,new Object[]{basHospital.getHosnum(),curPage*pageSize,(curPage-1)*pageSize,basHospital.getHosnum()});
			//把数据存到缓存里,以便导出
			request.getSession().setAttribute("clinicQuantity", list);
		
			JSONArray jsons=JSONArray.fromObject(list);
			//System.out.println(jsons.toString());
			pw.print(jsons.toString());
			
			db.commit();
		}catch(Exception e){
			db.rollback();
			e.printStackTrace();
			pw.print("fail");
		}finally{
			try {
				db.freeCon();
			} catch (Exception e1) {
				e1.printStackTrace();
			}
		}
	}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 之前上传了dhtmlx的官方demo上去 都很久了 (http: download csdn net detail pxzsky 2946815)看大家最近有需求 希望得到实际的使用代码 因为组件很多 所以我觉得大家可能对一些核心组件还是很感兴趣的 特别是分页列表 树等 这个在项目测试中我都用过了 这次先把列表的拿出来 2 因为涉及版权问题 如果你的产品要开源或者花钱购买授权 都没问题 否则最好还是仅仅内网学习使用 否 则需要考虑后果的 目前dhmtl只有GPL协议和商业协议 3 在我的其他资源中也有关于列表和树的组件使用示例: http: download csdn net detail pxzsky 6659071 这个工程是免费的(也可以认为开源) 里面使用了dhtml tree grid 很多地方用了tree 而grid目前只剩下角色管理列表了 后续也不想再用grid了 你可以参考 如果不想麻烦 那么就接着往下看 4 在它的免费版中(就是可以开源的) 最早(2 5)是没有分页库的 只有商业版有 后来经过高人指点 得到了crack 带有分页js库 很好用 其实主要是知道js中要传递的分页参数名字就ok了 5 资源包中有具体使用代码和组件的整个js 前端使用jsp 你只需要看分页那部分即可 其他的传的变量可以不管 以下粘贴重要的ui代码调用: <script type "text javascript"> var currpage <% request getParameter "cntPage" %>; 记录当前页面 $ document ready function { 初始化列表 initGrid ; } ; window dhx globalImgPath "${ctx} images public "; 初始化列表 function initGrid { showSkyLoading "数据加载中 请稍候 " ; mygrid new dhtmlXGridObject "projectlist" ; mygrid setImagePath " script dhtml grid imgs " ; mygrid setHeader "客户 项目 状态 是否ZZ 审核 提交时间 提交人 编辑 删除" ; mygrid setInitWidths " 180 90 50 70 90 70 50 50" ; mygrid setColAlign "left left left center left left left left left" ; mygrid setColTypes "ro ro ro ro ro ro ro ro ro" ; mygrid enableAutoHeight true "460" ; mygrid init ; mygrid setSkin "gray" ; mygrid enablePaging true ${splitPageSize} 5 "pagingArea" true "recinfoArea" ; mygrid loadXML "${ctx} project getProjectList action userScope " + ${userScope} ajustDms "xml" ; } function ajustDms { hideSkyLoading ; ajustFrameDms ; if currpage null && currpage "" && currpage "null" { mygrid changePage currpage ; } } < script> 后台接收分页参数: int iposStart 0; String posStart this getParameter "posStart" ; 相当于request getParameter "posStart" ; if posStart null && posStart equals "" { iposStart Integer parseInt posStart ; } int splitPageSize PreferenceUtil getSplitPageSize ; 当前列表分页条数配置(pageSize) 默认15条 SplitPageInfo spi new SplitPageInfo ; spi setPageSize splitPageSize ; 设置当前页信息 int currentPage 0; currentPage iposStart splitPageSize + 1; spi setCurrentPage currentPage ; 因为这个版本已经很老了 所以在IE10或其他新浏览器中会有些变形 如果用新版本 这个分页库能不能继续使用只有自己再尝试了 希望这个对大家有用 ">1 之前上传了dhtmlx的官方demo上去 都很久了 (http: download csdn net detail pxzsky 2946815)看大家最近有需求 希望得到实际的使用代码 因为组件很多 所以我觉得大家可能对一些核心组件还是很感兴趣的 特别是分页列表 树等 [更多]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值