问题:带有子网格的 jqGrid。我想禁用主网格某些行的展开/折叠功能。
问问题
6070 次
4 回答
6
我实际上找到了一种方法:
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上)。无论如何,我认为单击事件是使用“ui-sgcollapsed sgcollapsed”类之一附加的,因此如果删除它们,则不会附加该事件。
希望能帮助到你。
于 2011-09-15T09:31:06.170 回答
3
将此添加到 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("");
}
},
于 2010-06-22T19:34:00.847 回答
1
如果您尝试禁用或隐藏子网格展开和折叠按钮,请在加载完成时使用此按钮,
jQuery("#GridTeableID").jqGrid('hideCol', "subgrid");
于 2013-11-19T05:20:07.470 回答
0
不幸的是,没有用于此的 jqGrid API。您将不得不等到创建网格,然后,也许从loadComplete
事件中,您将需要手动循环所有行并禁用选定的行。
如果您检查组成网格的 DOM 元素,您可能会找到一种方法来删除/禁用选定行的扩展器。也许通过使用jQuery.remove。
于 2010-05-27T21:23:36.323 回答