我使用jQrid版本3.8.1与子网格。在我的例子中,用户在进入新行时能够扩展子网格是没有意义的。由于父行还不存在,所以子网格也没有什么要显示的。那么,禁用或删除子网格扩展按钮(+按钮)的最佳方法是什么?
我看到了这个帖子,它可以工作,但似乎有点黑客。是否有更受支持的方法?
我不确定我是否正确理解了你的场景。我假设您添加了行,然后想在内联编辑新添加的行时隐藏"+"按钮。
确切的实现取决于如何添加行以及使用哪种形式的内联编辑。无论如何,我建议您隐藏在内联编辑开始时的"+"按钮,并在行可能具有子网格信息之后显示它。您可以使用下面的代码来隐藏"+"图标
$("#" + rowid).find("td.ui-sgcollapsed>a").hide();
此外,如果用户单击"subgrid"单元格(其中包含隐藏的"+"),则必须防止子网格的扩展。您可以通过删除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
事件的绑定。