/** *监听store的load * @param grid 对应store的grid * @param cols 不需要合并的列[] 列默认第一列是0 * @param colsn 需要合并的列[] * @param pixel 像素 */ load: function (grid, cols, colsn, pixel) { var myMask = new Ext.LoadMask({ msg: "正在加载", target: grid }) myMask.show(); var id = grid.getView().getId(); //获取div《table》 var gridview = document.getElementById(id); //获取所有的tr[] var trArray = gridview.getElementsByTagName('tr'); //把所有的行都放入第一个table 并把原来的列删除 var length = trArray.length; if (length <= 1) { myMask.destroy(); return; } for (var i = 1; i < length; i++) { //指定位置插入html文本 trArray[i - 1].insertAdjacentHTML("afterend", trArray[i].innerHTML); trArray[i + 1].remove(); } //所有列插入分割线 var html = "<hr style='height:0.1px;border:none;border-bottom:#e9e9e9 1px solid;'>";//分割线 for (var i in cols) { for (var j = 1; j < length; j++) { trArray[j].childNodes[cols[i]].insertAdjacentHTML("afterbegin", html); } } //合并单元格 都是从零开始 this.span(trArray, colsn, pixel); myMask.destroy(); }, /**scrollable false *columnLines true * @param trArray 需要合并的<tr> * @param cols 那些列需要合并 列初始行是0 * @param pixel margin-top像素 */ span: function (trArray, cols, pixel) { //通用方法行合并单元格 var length = trArray.length; var html = "<hr style='height:0.1px;border:none;border-bottom:#e9e9e9 1px solid;'>";//分割线 for (var i in cols) { var column = cols[i];//列 var k = 0;//开始合并的列 for (var i = 0; i < length; i++) { var num = 1;//需要合并的列数 默认是一列 var data = trArray[i].childNodes[column].innerText; for (var j = i + 1; j < length; j++) { if (data == trArray[j].childNodes[column].innerText) { trArray[j].childNodes[column].style.display = 'none'; if (j == length - 1) { k = j; } num++; } else { k = j; break; } } trArray[i].childNodes[column].setAttribute('rowSpan', num); trArray[i].getElementsByTagName("div")[column].setAttribute("style", "text-align:center"); if (num > 1) { trArray[i].getElementsByTagName("div")[column].style.marginTop = "" + pixel * (num - 1) + "px"; } trArray[k].childNodes[column].insertAdjacentHTML("afterbegin", html); if (k == length - 1) {//说明此时i是最后一行 trArray[k].getElementsByTagName("div")[column].setAttribute("style", "text-align:center"); break; } i = k - 1; } } },
ExtJS6 合并单元格
猜你喜欢
转载自blog.csdn.net/qq_37512323/article/details/88694768
今日推荐
周排行