我创建了一个3级基础设施igHierarchicalGrid,它看起来像这样:
我想以编程方式选择ProductNumber的第三行。我能够做到这一点,直到第二级(比萨),但我无法达到第三级条目的目的。
以下是我选择披萨的代码
var parentGrid = grid.igHierarchicalGrid("rootWidget");
var row = parentGrid.rowAt(0);
grid.igHierarchicalGrid("expand", row);
var subGrids = grid.igHierarchicalGrid("allChildren");
$(subGrids).each(function(index, subGrid) {
$(subGrid).igGridSelection("selectRow", 0);
});
grid.igHierarchicalGrid(“ allChildren”)返回当前展开的行的所有子级,但将它们作为网格元素返回,而我的问题是那些元素也是HierarchicalGrids,我想对其进行扩展并从中选择子级。
最佳答案
igHierarchicalGrid实例仅在根网格上。使用根网格API,您也可以扩展/折叠子级的行。
以下是选择第三级行的方法:
var grid = $("#grid1");
var parentGrid = grid.igHierarchicalGrid("rootWidget");
var row = parentGrid.rowAt(0);
grid.igHierarchicalGrid("expand", row, function () {
var subGrids = grid.igHierarchicalGrid("allChildren"), currentGrid;
if (subGrids && subGrids[0]) {
currentGrid = $(subGrids[0]);
grid.igHierarchicalGrid("expand", currentGrid.igGrid("rowAt", 0), function () {
var subGrids = grid.igHierarchicalGrid("allChildren");
if (subGrids && subGrids[1]) {
$(subGrids[1]).igGridSelection("selectRow", 0);
}
});
}
});
请记住,
igHierarchicalGrid.expand
是异步API,最好在扩展完成后使用第三个callback
参数执行逻辑。