使用jqGrid形成表格

1、Mapper.xml文件中的排序(sqlServer数据库)

 ......
 order by xx ,yy offset #{page}*#{rows} - #{rows} row fetch next #{pageSize} row only

2、业务层省略,控制器返回的是json数据

@RequestMapping("/List.do")
@ResponseBody
	public JSONObject showJson(@RequestParam("page")Integer page,@RequestParam("rows")Integer rows){
		Map<String, Object> map = new HashMap<String, Object>();
		//得到的页数
		Integer totalpages = total % rows == 0 ? total/rows:total/rows+1;	
		map.put("totalpages", totalpages);//总页数
		map.put("pageSize", rows);//每页多少数据
		map.put("rows", listFinishOnTime);	//得到的集合
		map.put("page", page);//当前页
		map.put("total", total);//总共多少条数据
		JSONObject json = JSONObject.fromObject( map ); 
		//System.out.println(json.toString())	
		return json;
}

3、jsp页面,css,js请自己官网下载

<link rel="stylesheet" href="${pageContext.request.contextPath}/css/jqgrid/ui.jqgrid.css" >
<%-- <link rel="stylesheet" href="${pageContext.request.contextPath}/css/jqgrid/ui.jqgrid-bootstrap-ui.css" > --%>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/jqgrid/ui-lightness/jquery-ui-1.7.2.custom.css" >	
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/jqgrid/ui-lightness/jquery-ui.css" >
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<script  src="${pageContext.request.contextPath}/js/jqgrid/grid.locale-cn.js"></script>
<script  src="${pageContext.request.contextPath}/js/jqgrid/jquery.jqGrid.min.js"></script>
<script  src="${pageContext.request.contextPath}/js/jqgrid/jquery-ui.js"></script>
<!--这里是查询条件form表单 和jquery()查询按钮  -->
<!-- JqGrid  -->
<div class="p_container" >
	<div class="jqGrid_guest">
		<table id="list4"></table>
		<div id="pager2"></div>
	</div>
</div>

<script type="text/javascript">
//设置初始时间
var date = new Date();
var seperator = "-";
var year = date.getFullYear();
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9) {
  month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
  strDate = "0" + strDate;
}
var currentDate = year-1 + seperator + month + seperator + strDate; //开始日期
$("#prdtdate").attr('value',currentDate);

var sbumitTime = year + seperator + month + seperator + strDate; //当前日期
$("#deldate").attr('value',sbumitTime);

$(function(){
	selects(); //和表格无关
	select();  //和表格无关			
	opGrid.loadGrid();
	$("#list4").setGridParam({datatype:'json', page:1}).trigger('reloadGrid');

});
var opGrid = {//组装查询的条件参数
		getParam: function(){
			var rowListNum = $("#list4").jqGrid('getGridParam', 'rowNum');
			if(rowListNum == undefined){
				$('#pageSize').val(10);
			}else{
				$('#pageSize').val(rowListNum);
			}
			//组装查询的条件参数
			var params = {
					'prdtdate':$("#prdtdate").val(),
					'deldate':$("#deldate").val(),
					'companyid':$("#companyid").val(),
					'refdoctype':$("#refdoctype").val(),
					'ordertype':$("#orderType").val(),
					'cv2':$("#cv2").val(),
					'hourA':$("#hourA").val(),
					'hourB':$("#hourB").val(),
					'pageSize':$("#pageSize").val()				
			};
			return params;
		},
loadGrid: function(){
			$("#list4").jqGrid({
		url:'${pageContext.request.contextPath}/xx/List.do', 
		datatype: "json",
		mtype : "get",
		height: 400,
		rowNum:10,
	   	rowList:[10,20,30,50,100],
	   	pager: '#pager2',		 // 分页控件的id
	    viewrecords: true,		//设置是否在Pager Bar显示所有记录的总数。
	   // loadonce: true,//前端排序的关键属性
	    sortable:true,
	    sortorder: "desc",	    
	    rownumbers: true,            // 如果为ture则会在表格左边新增一列,显示行顺序号,从1开始递增。此列名为'rn'
	    autowidth: true,         // 如果为ture时,则当表格在首次被创建时会根据父元素比例重新调整表格宽度。
	    							//如果父元素宽度改变,为了使表格宽度能够自动调整则需要实现函数:setGridWidth
	   	colNames:['xx','xx', 'xx', 'xx','xx','xx','xx','xx', 'yy','yy','zz','zz','zz'],
	   	colModel:[//关键,name和后台json传过来的集合中的数据一样
	   		{name:'id',index:'id', width:60,align:"center"},
	   		{name:'mc',index:'mc', width:60,align:"center"},
	   		{name:'in',index:'in', width:60,align:"center"},
	   		{name:'out',index:'out', width:60, align:"center"},
	   		{name:'tot',index:'tot', width:80, align:"center"},		
	   		{name:'outFit',index:'outFt', width:60,align:"center"},		
	   		{name:'finnt',index:'finit', width:80,align:"center"}	,
	   		{name:'ontit',index:'onnnet', width:60,align:"center"},
	   		{name:'ontit',index:'onut', width:60, align:"center"},
	   		{name:'onish',index:'onsh', width:80, align:"center"},	
	   		{name:'ounet',index:'ounet', width:60, align:"center"},
	   		{name:'outout',index:'ouut', width:60, align:"center"},
	   		{name:'outt',index:'outtnt', width:80, align:"center"},	
	   	],
	   	multiselect: true,
	   //caption: "Manipulating Array Data",
	   	jsonReader:{//分页的关键			
			root: "rows",//记录列表
			page: "page", //当前页码
			total: "totalpages", //总页数
			records: "total",//总记录数	
			repeatitems: false
		},	 
		postData:opGrid.getParam(),
		//	footerrow: true			表尾
		
		
	});
		$("#list4").setGroupHeaders({ 
			useColSpanStyle: true,    //表头是否合并行,曾试了好多次,引入的js老是报错,建议先清除缓存
			groupHeaders:[ 
				{startColumnName: 'in', numberOfColumns: 3, titleText: '套数'},
				{startColumnName: 'finnt', numberOfColumns: 2, titleText: '完成'},
				{startColumnName: 'onish', numberOfColumns: 3, titleText: '准时'}			
			] 
		});    
	    
}
}

function query(){
        var prdtdate = ($("#prdtdate").val()); 
        var deldate = ($("#deldate").val()); 
        var companyid = $("#companyid").val(); 
        var refdoctype = $("#refdoctype").val(); 
        var ordertype = $("#ordertype").val(); 
        var cv2 = ($("#cv2").val()); 
        var hourB = ($("#hourB").val()); 
        var hourA = escape($("#hourA").val()); 
      //  $("#list4").setGridParam({datatype:'json', page:1}).jqGrid('setGridParam', {page:1, postData: opGrid.getParam()}).trigger("reloadGrid");
    //重新载入 
        $("#list4").jqGrid('setGridParam', {page:1, postData: opGrid.getParam()}).trigger("reloadGrid");
	}
 
</script>
function selects() {
var dictid = "-5500104";
	$.ajax({
				url : "${pageContext.request.contextPath}/util/dropdownlist/List.do",
				method : "get",
				data : {
					"dictid" : dictid
				},
				dataType : "json",
				"success" : function(obj) {
					for (var i = 0; i < obj.data.length; i++) {
						var selects = '<option value="'+obj.data[i].interValue+'">'
								+ obj.data[i].dictvalue + '</option>'
						$("#orderType").append(selects);
					}
				}
			});
}

function select() {
	var dictid2 = "-5500501";
	$.ajax({
		url : "${pageContext.request.contextPath}/util/dropdownlist/List.do",
		method : "get",
		data : {
			"dictid" : dictid2
		},
		dataType : "json",
		"success" : function(obj) {
			
			var empty = '<option value=>全部</option>'
				$("#cv2").append(empty);	 		
			for (var i = 0; i < obj.data.length; i++) {
				var selects = '<option value="'+obj.data[i].interValue+'">'
						+ obj.data[i].dictvalue + '</option>'
				$("#cv2").append(selects);
						
				}
			}
		});
	}
	
function shutDown() { //关闭
	window.parent.tabsClose();
	}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值