在第 3 层获得 Children 个 igHierarchicalGrid

Get Children of igHierarchicalGrid on 3rd Level

我创建了一个 3 级基础架构 igHierarchicalGrid,如下所示:

我想以编程方式 select 第三行包含 ProductNumber。我能够做到这一点,直到第二级(比萨),但我无法为第三级条目实现同样的事情。

下面是我select吃披萨

的代码
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") returns 当前扩展行的所有 children 但它 returns 它们作为网格元素,而我的问题是那些元素也是我要扩展的 HierarchicalGrids 和 select 来自的 children。

igHierarchicalGrid 实例仅在根网格上。使用根网格 API,您也可以 expand/collapse 行子元素。 select 第 3 级行的方法如下:

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 参数来执行您的逻辑。