【发布时间】:2015-09-01 03:53:44
【问题描述】:
我正在使用带有子网格的 jQrid 版本 3.8.1。就我而言,用户在输入新行时能够扩展子网格并没有什么意义。由于父行尚不存在,因此子网格无论如何都不会显示任何内容。那么仅针对正在创建的行禁用或删除子网格扩展按钮(+ 按钮)的最佳方法是什么?
我看到了this post,它可以工作,但似乎有点笨拙。有没有更受支持的方法?
【问题讨论】:
我正在使用带有子网格的 jQrid 版本 3.8.1。就我而言,用户在输入新行时能够扩展子网格并没有什么意义。由于父行尚不存在,因此子网格无论如何都不会显示任何内容。那么仅针对正在创建的行禁用或删除子网格扩展按钮(+ 按钮)的最佳方法是什么?
我看到了this post,它可以工作,但似乎有点笨拙。有没有更受支持的方法?
【问题讨论】:
我不确定我是否正确理解了您的情况。我想您添加了行,然后想在新添加的行的内联编辑期间隐藏“+”按钮。
具体实现取决于您添加行的方式以及您使用的内联编辑形式。无论如何,我建议您隐藏在内联编辑开始时的“+”按钮,并在行可能具有子网格信息之后显示它。您可以使用以下代码隐藏“+”图标
$("#" + 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,那么您可以通过将空字符串或 &nbsp; 设置为该行的 td.ui-sgcollapsed 调用的 HTML 内容来删除“+”图标。此外,还可以将click 事件与单元格解除绑定。对应的代码示例见the old answer。
【讨论】: