我有一个多选jqGrid,带有多选网格作为子网格。在父网格的onSelectRow
事件中,如何获取对子网格的引用?
基本上,我需要做以下事情:
onSelectRow
并重复该过程。不要担心,网格深度不超过3个。)今天早上我正在查看各种documentation,但到目前为止还没有发现我需要做些什么来实现这一点。也许我只是错过了显而易见的事情?或者这可能需要更多的聪明才能?
我看到上面的步骤3如何从getRowData()
开始,并使用setSelection()
循环结果。我在代码中使用其他代码并且它们工作得很好。但上面的步骤1和2是我现在陷入困境的地方。
编辑:按照下面的@ Oleg的回答,我看了一下同步父网格的onSelectRow
事件和subGridRowExpanded
事件之间的工作。这是我正在测试的版本的简化版本:
onSelectRow: function(id, status) {
// Automatically expand the sub-grid (to load the data) and select the rows in that grid
autoSelecting = true; // autoSelecting is a global variable normally set to false
$('#mainGrid').expandSubGridRow(id);
}
subGridRowExpanded: function(subgrid_id, row_id) {
//... build the sub-grid, works fine (an artifact of which is a subgrid_table_id)
// If this grid was auto-expanded to be auto-selected, select all its rows
if (autoSelecting) {
var sdata = $('#' + subgrid_table_id).getRowData();
for (var i = 0; i < sdata.length; i++) {
$('#' + subgrid_table_id).setSelection(sdata[i].Id);
}
autoSelecting = false;
}
}
当我修补这个时,发生了一些事情:
答案 0 :(得分:1)
在loadComplete
事件处理程序内部加载了网格,您可以执行一些其他操作,例如扩展某些行。
subGridRowExpanded
事件。您没有发布您使用的JavaScript代码,因此很难更准确地描述。setSelection
或使用$('.cbox', myGrid[0]).trigger('click');
之类的代码。如何执行相同的操作还有其他不同的变体。如果您发现这里存在性能瓶颈,那么我可以描述如何更有效地完成这一步骤。我可以重复一遍,最重要的是你在网格数据(或子网格数据)之后展开或选择行。