【问题标题】:How to merge cells in jqGrid 4.0如何在 jqGrid 4.0 中合并单元格
【发布时间】:2011-08-03 06:39:25
【问题描述】:

我一直在尝试“合并” 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 行)。但是,如果我在这些框中的任何一个中添加文本,text-align 显然将无法正常工作,并且如果文本大于 50 像素,则会被截断。

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

【问题讨论】:

标签: jquery jqgrid


【解决方案1】:

我觉得你的问题很有趣,所以向我 +1。

在我看来,colspan=2 的用法是您真正需要的。要在具有colspan=2 的行中拥有相同数量的列,我建议隐藏行中的下一个&lt;td&gt; 元素:

{
    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;"' }
    }
}

我只测试了几次实现,但它似乎工作:

你可以现场观看的演示here

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

【讨论】:

  • 奥列格。我需要合并页脚中的列。这在 jqGrid 中是否可行,或者您有任何解决方案。这是我的链接——stackoverflow.com/questions/22190756/…
  • @BabuArumugam:我已经回答了你的问题,但我建议使用一些其他技术。
【解决方案2】:

现在好像不支持。他们说“不久的将来”。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 2023-03-02
    • 2013-05-22
    • 2014-03-18
    • 1970-01-01
    相关资源
    最近更新 更多