问题:jqGrid有子网格。我想为主网格的某些行禁用展开/折叠功能。
答案 0 :(得分:5)
我实际上找到了一种方法:
grid.jqGrid('setGridParam',{
afterInsertRow: function(rowid, aData, rowelem) {
var rowData = grid.getRowData(rowid);
if(**Condition**){
$('tr#'+rowid, grid)
.children("td.sgcollapsed")
.html("")
.removeClass('ui-sgcollapsed sgcollapsed');
}
}
});
有一点问题。代码@Frank删除了图标,但仍然触发了“点击”事件。尝试取消绑定“点击”事件似乎不起作用,可能是因为它稍后附加(可能在 gridComplete 上)。无论如何,我认为click事件是使用'ui-sgcollapsed sgcollapsed'类之一附加的,所以如果删除它们,则不会附加事件。
希望它有所帮助。
答案 1 :(得分:2)
将其添加到gridConfig
afterInsertRow: function(rowid, aData, rowelem) {
// Remove the subgrid plus button except for rows that have exceptions
if (CONDITION) {
$('#' + rowid).children("td.sgcollapsed").unbind().html("");
}
},
答案 2 :(得分:0)
不幸的是,没有jqGrid API。您必须等到网格创建,然后,可能从loadComplete
事件,您需要手动循环所有行并禁用所选行。
如果检查组成网格的DOM元素,您可能想出一种方法来删除/禁用所选行的扩展器。也许使用jQuery.remove。
答案 3 :(得分:0)
如果您尝试禁用或隐藏子网格展开和折叠按钮,请在loadcomplete上使用此功能,
jQuery("#GridTeableID").jqGrid('hideCol', "subgrid");