extJs tree:从name获取一个节点

时间:2011-12-30 08:39:43

标签: extjs

有没有办法检查/取消选中extJS树中的节点,如果我们只有节点名称(父名称直到root)。我使用的是ExtJS 3.3.0,无法在API文档中找到任何方法

1 个答案:

答案 0 :(得分:2)

首先:我猜名称与节点的ID不匹配,否则您已完成treePanel.getNodeById() API link

您拥有给定node.getPath()

的节点的路径

你只需要打电话

treePanel.expandPath(path, null, function(bSuccess, oLastNode){ oLastNode.select() });
treePanel.expandPath(path, null, function(bSuccess, oLastNode){ oLastNode.unselect() });

API -Link

使用名称表示节点的text属性与节点id或节点上的任何其他可访问属性不匹配:

  • 获取您的根节点和所有子节点的数组
  • 走自己的路,并在第一个孩子之后获得
  • 遍历数组直到找到node.text
  • 上的匹配项
  • 从此节点获取子数组
  • 从你的道路中接下一个孩子
  • 遍历数组直到找到node.text
  • 上的匹配项

最后,您将到达目标节点。知道你只需要打电话

请注意,我没有测试选择/取消选择行为,但应检查/取消选中组合。如果您只想更改状态,可以使用toggle()进行折叠,或collapse() / expand()