Extjs4 grid合并行单元格

 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); }})

你可能感兴趣的:(Html,Extjs4)