jqgrid合并单元格几种情况

版权声明:本文为博主原创文章,欢迎转载,但请注明作者及文章出处,博文有什么不正之处欢迎指正。https://me.csdn.net/weixin_43239106
单元格合并几种情况,有什么其他情况,以此类推

//装载表格
	function loadGrid() {
		$("#grid").jqGrid({
			url : "",
			height : document.body.clientHeight - 130,
			colModel : [{
		                label : '',
		                name : 'fileId',
		                index : 'fileId',
		                width : 120,
		                hidden:true
		       }, {
	                        label : '单位id',
	                        name : 'orgId',
	                        index : 'orgId',
	                        width : 120,
	                        hidden:true
	                }, {
				label : '单位名称',
				name : 'orgName',
				index : 'orgName',
				width : 100,
				cellattr:function(rowId,tv,rawObject,cm,rdate){  //①给当前单元格设置id
					return 'id=\'orgName'+rowId+"\'";**// 第一种,单条件的合并**
				}
		     }, {
				label : '附件数量',
				name : 'total_fileCount',
				index : 'total_fileCount',
				width : 80,
				cellattr:function(rowId,tv,rawObject,cm,rdate){
					return 'id=\'total_fileCount'+rowId+"\'";**// 第二种,依附其他属性字段合并**
				}
			}, {
				label : '附件大小(M)',
				name : 'total_fileSize',
				index : 'total_fileSize',
				width : 80 ,
				cellattr:function(rowId,tv,rawObject,cm,rdate){
					return 'id=\'total_fileSize'+rowId+"\'";**// 第三种,依附以自己属性和其他属性字段合并             }
			}],
			gridComplete: function() {
		                //②在gridComplete调用合并方法
		                var gridName = "grid";
		                Merger(gridName, 'orgName');//第一种合并
		                Merger2(gridName,'orgid','total_fileCount');//第二种合并
		                Merger3(gridName,'orgid',fileId,'total_fileSize');//第三种合并
	              },
			rowNum :"all"
		})
	}
	//调用方法
	//第一种合并行
	function Merger(gridName, CellName){
		//得到显示到界面的id集合
        var mya = $("#" + gridName + "").getDataIDs();
      //当前显示多少条
        var length = mya.length;
        for (var i = 0; i < length; i++) {
        	//从上到下获取一条信息
            var before = $("#" + gridName + "").jqGrid('getRowData', mya[i]);
            //定义合并行数
            var rowSpanTaxCount = 1;
            for (j = i + 1; j <= length; j++) {
                //和上边的信息对比 如果值一样就合并行数+1 然后设置rowspan 让当前单元格隐藏
                var end = $("#" + gridName + "").jqGrid('getRowData', mya[j]);
                if (before[CellName] == end[CellName]) {
                    rowSpanTaxCount++;
                    $("#" + gridName + "").setCell(mya[j], CellName, '', { display: 'none' });
                } else {
                    rowSpanTaxCount = 1;
                    break;
                }
                $("#" + CellName + "" + mya[i] + "").attr("rowspan", rowSpanTaxCount);
                $("#" + CellName + "" + mya[i] + "").css("vertical-align", "middle");//字体居中显示
            }
        }
	}
	//第二种合并行
	function Merger2(gridName, CellName,CellName2){
		//得到显示到界面的id集合
        var mya = $("#" + gridName + "").getDataIDs();
        //当前显示多少条
        var length = mya.length;
        for (var i = 0; i < length; i++) {
        	//从上到下获取一条信息
            var before = $("#" + gridName + "").jqGrid('getRowData', mya[i]);
            //定义合并行数
            var rowSpanTaxCount = 1;
            for (j = i + 1; j <= length; j++) {
                //和上边的信息对比 如果值一样就合并行数+1 然后设置rowspan 让当前单元格隐藏
                var end = $("#" + gridName + "").jqGrid('getRowData', mya[j]);
                if (before[CellName] == end[CellName]) {
                    rowSpanTaxCount++;
                    $("#" + gridName + "").setCell(mya[j], CellName2, '', { display: 'none' });
                } else {
                    rowSpanTaxCount = 1;
                    break;
                }
                $("#" + CellName2 + "" + mya[i] + "").attr("rowspan", rowSpanTaxCount);
                $("#" + CellName2 + "" + mya[i] + "").css("vertical-align", "middle");
            }
        }
	}
	//第三种合并
	function Merger3(gridName, CellName,CellName2,CellName3){
    	//得到显示到界面的id集合
        var mya = $("#" + gridName + "").getDataIDs();
        //当前显示多少条
        var length = mya.length;
        for (var i = 0; i < length; i++) {
        	//从上到下获取一条信息
            var before = $("#" + gridName + "").jqGrid('getRowData', mya[i]);
            //定义合并行数
            var rowSpanTaxCount = 1;
            for (j = i + 1; j <= length; j++) {
                //和上边的信息对比 如果值一样就合并行数+1 然后设置rowspan 让当前单元格隐藏
                var end = $("#" + gridName + "").jqGrid('getRowData', mya[j]);
                if (before[CellName] == end[CellName] && before[CellName2] == end[CellName2]) {
                    rowSpanTaxCount++;
                    $("#" + gridName + "").setCell(mya[j], CellName3, '', { display: 'none' });
                } else {
                    rowSpanTaxCount = 1;
                    break;
                }
                $("#" + CellName3 + "" + mya[i] + "").attr("rowspan", rowSpanTaxCount);
                $("#" + CellName3 + "" + mya[i] + "").css("vertical-align", "middle");
            }
        }
	}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值