[置顶] Extjs4 grid合并行单元格

时间:2022-04-11 18:54:51
 function spanRows(grid, row, col) {
var id = grid.view.getId();
var viewDiv = document.getElementById(id);
var tables = viewDiv.getElementsByTagName("table");
if (tables.length==0) {
return;
}
var trs = tables[0].getElementsByTagName("tr");
var firstTd = trs[row].getElementsByTagName("td")[col];
var num = 1;
for (var i = row; i < trs.length; i++) {
var tr = trs[i];
var td = tr.getElementsByTagName("td")[col];
if (!td) {
continue;
}
if (td.innerHTML == firstTd.innerHTML) {
if (i > row) {
num++;
firstTd.rowSpan = num;
firstTd.style["vertical-align"] = "middle";
tr.removeChild(td);
}
}
else {
firstTd = td;
num = 1;
}
}
}
上面的代码说明:grid需要合并的grid,row起始行位置(一般从0开始,如果涉及到th,可以直接跳过从1开始),col指定列合并,如果涉及多个列合并,请先从后面一个开始调用方法(比如:我需要合并1和2列, spanRows(grid,1,2);spanRows(grid,1,1);)如果出现差异 可以看下页面html,需要先找到table。调用时,请在grid的store.load({callback:function(){ spanRows(grid,1,2); spanRows(grid,1,1); }})