最近,在做一个项目的时候,需要合并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代码还有点小问题,就是只能合并一列,不能够同时合并多列,希望某位仁兄改进,使之能够同时合并多列。