最近,在做一個項目的時候,需要合並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代碼還有點小問題,就是只能合並一列,不能夠同時合並多列,希望某位仁兄改進,使之能夠同時合並多列。
