如何合并jqGrid 4.0中的单元格

时间:2011-04-11 17:50:36

标签: jquery jqgrid

我一直试图在jqGrid中“合并”单元格,也就是说,我想让特定行的单元格具有colspan = 2(或更多)。到目前为止,我已经能够使用列模型中的 cellattr 选项使边框正常工作,如下所示:

colModel = { name: "a", width=50, 
             cellattr: function(rowId, tv, rawObject, cm, rdata) {
                          if (rowId < 5) { return 'sytle="border-right:0px"'; } },

             name: "b", width=50, 
             cellattr: function(rowId, tv, rawObject, cm, rdata) {
                          if (rowId < 5) { return 'sytle="border-left:0px"'; } } };

这只删除了我要合并的单元格的边框(a&b;直到第5行)。但是,如果我在任何这些方框中添加文字,文字对齐显然不会正常工作,如果大于50像素,文字就会被切断。

我可以做一些疯狂的事情,我通过将所有文本切成两半来进行居中对齐,并将每一半分别添加到右对齐和左对齐下的列“a”和“b”。但是,似乎应该有更好的方法。

2 个答案:

答案 0 :(得分:13)

我发现你的问题非常有趣,所以+1来自我。

在我看来,colspan=2的使用是你真正需要的。要在具有colspan=2的行中使用相同数量的列,我建议隐藏行中的下一个<td>元素:

{
    name:'a',index:'a', width:50,
    cellattr: function(rowId, tv, rawObject, cm, rdata) {
        if (Number(rowId) < 5) { return ' colspan=2' }
    }
},
{
    name:'b',index:'b', width:50,
    cellattr: function(rowId, tv, rawObject, cm, rdata) {
        if (Number(rowId) < 5) { return ' style="display:none;"' }
    }
}

我只测试了几次实现,但它似乎有效:

enter image description here

您可以直播here的演示。

更新Another answer显示如何在jqGrid中使用rowspan属性。

答案 1 :(得分:0)

听起来现在不支持它。他们说“不久的将来”。

http://www.trirand.net/forum/default.aspx?g=posts&t=1184