要實現如下合並樣式:
js代碼如下:

/** * EasyUI DataGrid根據字段動態合並單元格 * param tableID 要合並table的id * param colList 要合並的列,用逗號分隔(例如:"name,department,office"); * param mainColIndex 要合並的主列索引 */ function mergeCellsByField(tableID, colList, mainColIndex) { var ColArray = colList.split(","); var tTable = $('#' + tableID); var TableRowCnts = tTable.datagrid("getRows").length; var tmpA; var tmpB; var PerTxt = ""; var CurTxt = ""; var alertStr = ""; for (var i = 0; i <= TableRowCnts ; i++) { if (i == TableRowCnts) { CurTxt = ""; } else { CurTxt = tTable.datagrid("getRows")[i][ColArray[mainColIndex]]; } if (PerTxt == CurTxt) { tmpA += 1; } else { tmpB += tmpA; for (var j = 0; j < ColArray.length; j++) { tTable.datagrid('mergeCells', { index: i - tmpA, field: ColArray[j], rowspan: tmpA, colspan: null }); } tmpA = 1; } PerTxt = CurTxt; } }
調用合並方法:
//dgReportDetail=要合並的datagrid,"col1,col2,col3"=要合並的列,0=‘參照主列’在第二個參數集合的索引,此處為col1
mergeCellsByField("dgReportDetail", "col1,col2,col3", 0);
如果沒有參照主列,實現內容列的相同字段自動合並,可參考以下地址:
http://www.cnblogs.com/xcsn/archive/2013/03/15/2960980.html