鲜荣彬
Herry

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

posted on 2012-10-05 22:48  Herry彬  阅读(11528)  评论(1编辑  收藏  举报