【问题标题】:How to remove jqgrid sub-grid expansion button while creating new row创建新行时如何删除jqgrid子网格扩展按钮
【发布时间】:2015-09-01 03:53:44
【问题描述】:

我正在使用带有子网格的 jQrid 版本 3.8.1。就我而言,用户在输入新行时能够扩展子网格并没有什么意义。由于父行尚不存在,因此子网格无论如何都不会显示任何内容。那么仅针对正在创建的行禁用或删除子网格扩展按钮(+ 按钮)的最佳方法是什么?

我看到了this post,它可以工作,但似乎有点笨拙。有没有更受支持的方法?

【问题讨论】:

    标签: jqgrid subgrid


    【解决方案1】:

    我不确定我是否正确理解了您的情况。我想您添加了行,然后想在新添加的行的内联编辑期间隐藏“+”按钮。

    具体实现取决于您添加行的方式以及您使用的内联编辑形式。无论如何,我建议您隐藏在内联编辑开始时的“+”按钮,并在行可能具有子网格信息之后显示它。您可以使用以下代码隐藏“+”图标

    $("#" + rowid).find("td.ui-sgcollapsed>a").hide();
    

    此外,如果用户单击“子网格”单元格(其中包含隐藏的“+”),您将不得不阻止子网格的扩展。您可以通过删除 sgcollapsed 类(或 sgexpanded 类)来做到这一点:

    $("#" + rowid).find("td.ui-sgcollapsed").removeClass("sgcollapsed");
    

    要恢复原始状态(保存编辑行后),您需要显示图标 ($("#" + rowid).find("td.ui-sgcollapsed>a").show()) 并将类 sgcollapsed 添加回 <td> 元素 ($("#" + rowid).find("td.ui-sgcollapsed").addClass("sgcollapsed"))。

    如果您确定某行没有任何 sbgrid,那么您可以通过将空字符串或   设置为该行的 td.ui-sgcollapsed 调用的 HTML 内容来删除“+”图标。此外,还可以将click 事件与单元格解除绑定。对应的代码示例见the old answer

    【讨论】:

    • 谢谢@Oleg。这基本上就是我想知道的。我不确定使用 jquery 直接操作 DOM 是否可行,或者 jqgrid 是否直接支持隐藏/显示图标。
    猜你喜欢
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    相关资源
    最近更新 更多