我创建了一个3级基础设施igHierarchicalGrid,它看起来像这样:

javascript - 在第三级获取igHierarchicalGrid的子级-LMLPHP

我想以编程方式选择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参数执行逻辑。

09-25 21:32