1. function mergeCells(data){
var arr =[{mergeFiled:"departname",premiseFiled:"departname"}, //合并列的field数组及对应前提条件filed(为空则直接内容合并)
{mergeFiled:"plancode",premiseFiled:"plancode"} //mergeFiled:合并列的field名,和premiseFiled:合并前边列的前提条件约束列即只有这个约束列相等时再合并mergeFiled列
];
var dg = $("#ProjectList"); //要合并的datagrid中的表格id
var rowCount = dg.datagrid("getRows").length;
var cellName;
var span;
var perValue = "";
var curValue = "";
var perCondition="";
var curCondition="";
var flag=true;
var condiName="";
var length = arr.length - 1;
for (i = length; i >= 0; i--) {
cellName = arr[i].mergeFiled;
condiName=arr[i].premiseFiled;
if(condiName!=''){
flag=false;
}
perValue = "";
perCondition="";
span = 1;
for (row = 0; row <= rowCount; row++) {
if (row == rowCount) {
curValue = "";
curCondition="";
} else {
curValue = dg.datagrid("getRows")[row][cellName];
/* if(cellName=="ORGSTARTTIME"){//特殊处理这个时间字段
curValue =formatDate(dg.datagrid("getRows")[row][cellName],"");
} */
if(!flag){
curCondition=dg.datagrid("getRows")[row][condiName];
}
}
if (perValue == curValue&&(flag||perCondition==curCondition)) {
span += 1;
} else {
var index = row - span;
dg.datagrid('mergeCells', {
index : index,
field : cellName,
rowspan : span,
colspan : null
});
span = 1;
perValue = curValue;
if(!flag){
perCondition=curCondition;
}
}
}
}
var arr =[{mergeFiled:"departname",premiseFiled:"departname"}, //合并列的field数组及对应前提条件filed(为空则直接内容合并)
{mergeFiled:"plancode",premiseFiled:"plancode"} //mergeFiled:合并列的field名,和premiseFiled:合并前边列的前提条件约束列即只有这个约束列相等时再合并mergeFiled列
];
var dg = $("#ProjectList"); //要合并的datagrid中的表格id
var rowCount = dg.datagrid("getRows").length;
var cellName;
var span;
var perValue = "";
var curValue = "";
var perCondition="";
var curCondition="";
var flag=true;
var condiName="";
var length = arr.length - 1;
for (i = length; i >= 0; i--) {
cellName = arr[i].mergeFiled;
condiName=arr[i].premiseFiled;
if(condiName!=''){
flag=false;
}
perValue = "";
perCondition="";
span = 1;
for (row = 0; row <= rowCount; row++) {
if (row == rowCount) {
curValue = "";
curCondition="";
} else {
curValue = dg.datagrid("getRows")[row][cellName];
/* if(cellName=="ORGSTARTTIME"){//特殊处理这个时间字段
curValue =formatDate(dg.datagrid("getRows")[row][cellName],"");
} */
if(!flag){
curCondition=dg.datagrid("getRows")[row][condiName];
}
}
if (perValue == curValue&&(flag||perCondition==curCondition)) {
span += 1;
} else {
var index = row - span;
dg.datagrid('mergeCells', {
index : index,
field : cellName,
rowspan : span,
colspan : null
});
span = 1;
perValue = curValue;
if(!flag){
perCondition=curCondition;
}
}
}
}
}
2. //呈现列表数据
$('#ProjectList').datagrid({ pagination: true,
onLoadSuccess: function (data) {
if (data.rows.length > 0) {
//调用mergeCellsByField()合并单元格
mergeCellsByField("id", "departname,plancode");
}
}
});