You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现igHierarchicalGrid第三层级行的程序化选择?

解决Infragistics igHierarchicalGrid第三层级行选择问题

我明白你现在卡在第三层级行选择这一步了——已经搞定二级(Pizza)的行选择,但三级的操作没成功对吧?咱们一步步来拆解问题,找到解决方案。

问题根源

你之前用grid.igHierarchicalGrid("allChildren")获取的是当前展开行的直接子网格(也就是二级网格),但三级网格是二级网格的子项,所以需要先展开二级网格的行,再从二级网格里获取它的子网格(三级),才能进行选择操作。

完整解决方案代码

下面是调整后的代码,我加上了详细注释,你可以根据自己的实际配置修改:

// 1. 获取根层级网格实例
var parentGrid = grid.igHierarchicalGrid("rootWidget");
// 2. 选择并展开根网格的第一行(对应二级网格的父行)
var rootRow = parentGrid.rowAt(0);
grid.igHierarchicalGrid("expand", rootRow);

// 3. 获取所有已展开的二级子网格
var secondLevelGrids = grid.igHierarchicalGrid("allChildren");

// 4. 遍历每个二级网格,处理三级内容
$(secondLevelGrids).each(function(index, secondGrid) {
    // 先展开二级网格的目标行(这里选第一行,你可以根据需求调整索引)
    var secondGridWidget = $(secondGrid).igHierarchicalGrid("rootWidget");
    var secondRow = secondGridWidget.rowAt(0);
    $(secondGrid).igHierarchicalGrid("expand", secondRow);

    // 5. 获取当前二级网格下的所有三级子网格
    var thirdLevelGrids = $(secondGrid).igHierarchicalGrid("allChildren");

    // 6. 遍历每个三级网格,定位并选择目标行
    $(thirdLevelGrids).each(function(thirdIndex, thirdGrid) {
        // 假设你要选第三行(索引从0开始,所以是2)
        var targetRowIndex = 2;
        var thirdGridWidget = $(thirdGrid).igHierarchicalGrid("rootWidget");
        var targetRow = thirdGridWidget.rowAt(targetRowIndex);

        // 可选验证:确保该行包含ProductNumber列(根据你的列键调整data-key值)
        var productNumberCell = $(targetRow).find("td[data-key='ProductNumber']");
        if (productNumberCell.length > 0) {
            // 执行行选择操作
            $(thirdGrid).igGridSelection("selectRow", targetRowIndex);
        }
    });
});

关键注意点

  • 展开顺序很重要:必须先展开父级行,子网格才会被渲染,allChildren才能获取到对应的子网格实例
  • 行索引的对应关系:Infragistics的行索引是从0开始的,所以“第三行”对应的索引是2,如果你的需求是按内容定位(比如找到包含特定ProductNumber值的行),可以遍历三级网格的所有行,通过单元格内容判断后再选择
  • 列键匹配:代码里的data-key='ProductNumber'要和你网格列配置中的key属性完全一致,否则会找不到目标单元格

内容的提问来源于stack exchange,提问作者Hassam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:26:29