目标样式:
1、在需要合并的table标签中加上 data-options="onLoadSuccess: onLoadSuccess",默认加载该方法
2、方法内自动合并代码
//合并列id为col1,当前页面所有数据如果相同则合并行
function onLoadSuccess(data){
var rows = $('#tableid').datagrid('getRows');
var startIndex = 0;
var totalRow = 1;
var merges = new Object();
var mergesTotal = 0;
for(var i=0; i<rows.length; i++){
//得到的两种数据保存在merges[i]里
if(rows[i+1] != undefined){
//下一行还有数据
if(rows[i].col1 == rows[i+1].col1){
totalRow++;
}else{
//开始不一样了,存储上一组一样的数据组
var merge = new Object();
merge['index']=startIndex;
merge['rowspan']=totalRow;
merges[mergesTotal]=merge;
//初始化数据组
startIndex = startIndex+totalRow;
totalRow = 1;
mergesTotal++;
}
}else{
//最后一组
var merge = new Object();
merge['index']=startIndex;
merge['rowspan']=totalRow;
merges[mergesTotal]=merge;
}
}
//获取当前rows们,计算相同数据的条数,以及相同数据的第一列的index
for(var i=0; i<mergesTotal+1; i++){
console.log(merges[i]);
$(this).datagrid('mergeCells',{
index: merges[i].index,
field: 'col1',
rowspan: merges[i].rowspan
});
}
}
思路:判断上下行一样与否,不一样则获取本行为止数据行数,一样则行数+1