如何在创建新行时删除jqgrid子网格扩展按钮

时间:2015-09-01 03:53:44

标签: jqgrid subgrid

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

我看到了this post,这可能会奏效,但看起来有点笨拙。是否有更受支持的方法?

1 个答案:

答案 0 :(得分: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>元素({{1 }})。

如果您确定某些行没有任何sbgrid,则可以通过将空字符串或$("#" + rowid).find("td.ui-sgcollapsed").addClass("sgcollapsed")设置为行的&nbsp;调用的HTML内容来删除“+”图标。另外,可以从单元解除td.ui-sgcollapsed事件的绑定。有关相应的代码示例,请参阅the old answer