我正在使用带有子网格的jQrid版本3.8.1。就我而言,用户在进入新行时能够扩展子网格并不是真的有意义。由于父行尚未存在,因此无论如何都不会显示子网格。那么,对于正在创建的行,禁用或删除子网格扩展按钮(+按钮)的最佳方法是什么?
我看到了this post,这可能会奏效,但看起来有点笨拙。是否有更受支持的方法?
答案 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")
设置为行的
调用的HTML内容来删除“+”图标。另外,可以从单元解除td.ui-sgcollapsed
事件的绑定。有关相应的代码示例,请参阅the old answer。