jQuery EasyUI DataGrid根据字段动态合并单元格

先贴上我自己根据easyui的demo中rowborder.html文件写的一个很low的方法

function onLoadSuccess(data){
			var rowspans=1; //td的rowspan属性旳值
			//之所以从1 开始遍历,而不是0. 看后面
			for(var i=1;i<data.rows.length;i++){		
				if(data.rows[i-1].productid==data.rows[i].productid){
					//当前值与上一个值相同   多占一行
					rowspans+=1;
					//假如当前值是最后行,需要将这个rowspans值放进去
					if(i==data.rows.length-1){
						if(rowspans!=1){
							$(this).datagrid('mergeCells',{
								index: i-rowspans+1,
								field: 'productid',
								rowspan:rowspans
							});
						}
					}						
				}else{
					//当前个与前一个不同,则是另外个数据了。将前一个rowspans保存,
					if(rowspans!=1){
						$(this).datagrid('mergeCells',{
						index: i-rowspans,
						field: 'productid';'status',
						rowspan:rowspans
						});
					}
					//初始化rowspans
					rowspans=1;
				}
			}	
		}

下面是转载自:http://www.gogogogo.me/development/EasyUI-DataGrid-mergeCells.html   的高复用性方法

/**
02	 * EasyUI DataGrid根据字段动态合并单元格
03	 * @param tableID 要合并table的id
04	 * @param colList 要合并的列,用逗号分隔(例如:"name,department,office");
05	 */
06	function mergeCellsByField(tableID,colList){
07	    var ColArray = colList.split(",");
08	    var tTable = $('#'+tableID);
09	    var TableRowCnts=tTable.datagrid("getRows").length;
10	    var tmpA;
11	    var tmpB;
12	    var PerTxt = "";
13	    var CurTxt = "";
14	    var alertStr = "";
15	    for (j=ColArray.length-1;j>=0 ;j-- )
16	    {
17	        PerTxt="";
18	        tmpA=1;
19	        tmpB=0;
20	         
21	        for (i=0;i<=TableRowCnts ;i++ )
22	        {
23	            if (i==TableRowCnts)
24	            {
25	                CurTxt="";
26	            }
27	            else
28	            {
29	                CurTxt=tTable.datagrid("getRows")[i][ColArray[j]];
30	            }
31	            if (PerTxt==CurTxt)
32	            {
33	                tmpA+=1;
34	            }
35	            else
36	            {
37	                tmpB+=tmpA;
38	                tTable.datagrid('mergeCells',{
39	                    index:i-tmpA,
40	                    field:ColArray[j],
41	                    rowspan:tmpA,
42	                    colspan:null
43	                });
44	                tmpA=1;
45	            }
46	            PerTxt=CurTxt;
47	        }
48	    }
49	}
函数mergeCellsByField调用:

function workerCount(){
02	    $('#coutTable').datagrid({
03	        title:'员工统计',
04	        height:595,
05	        nowrap: false,
06	        striped: true,
07	        fitColumns:true,
08	        url:'<%=path%>/order.do?method=orderCount', 
09	        queryParams:{date:$('#date').datebox('getValue')},
10	        onLoadSuccess:function(data){
11	            if (data.rows.length>0)
12	            {
13	                //调用mergeCellsByField()合并单元格
14	                mergeCellsByField("coutTable","department,position");
15	            }
16	        },
17	        columns:[[
18	            {title:'编号',field:'number',width:120},
19	            {title:'姓名',field:'name',width:120},
20	            {title:'部门',field:'department',width:120},
21	            {title:'职位',field:'position',width:120}
22	        ]],
23	        rownumbers:true
24	    });
25	}




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值