最近,在做一个项目的时候,需要合并GridView的单元格,让相同的数据显示成一行,公司里一位大哥写的,贴出来给给位看看,公司的代码拿不出来的,就看懂后,自己写出来的哈。
其中,tabObj代表表的Id,即GridView的Id,cellIndex代表合并第几列,beignRow 代表从几行开始,通常使用1,因为0是表头哈。
js代码如下:
function SpanGrid(tabObj, cellindex, beginRow) {
var colIndex = cellindex; var rowBeginIndex = beginRow; if (tabObj != null) { var i, j, m;var intSpan;
var strTemp; m = 0; for (i = rowBeginIndex; i < tabObj.rows.length; i++) { intSpan = 1; m++; strTemp = tabObj.rows[i].cells[colIndex].innerText; for (j = i + 1; j < tabObj.rows.length; j++) { if (strTemp == tabObj.rows[j].cells[colIndex].innerText) { intSpan++; tabObj.rows[i].cells[colIndex].rowSpan = intSpan; tabObj.rows[j].cells[colIndex].style.display = "none"; } else { break; } }}
i = j - 1; }}
当然,这个Js代码还有点小问题,就是只能合并一列,不能够同时合并多列,希望某位仁兄改进,使之能够同时合并多列。