1

我有一个树形面板。树中的每个节点都有一个 ID。单击按钮时,我想触发节点 2.1 的 checkchange 事件(如下图所示)。如何在单击按钮时使用节点的 ID 为节点触发 checkchange 事件。

  1 
      1.2
      1.3
      1.4
  2
       2.1
       2.2
  3

谢谢

4

1 回答 1

2

要触发 checkchange,您需要拥有节点以及是否已检查。

TreePanel用于存储它的Ext.data.TreeStore节点信息(它在store属性中)。

此 TreeStore 具有getNodeById( id )按 id 返回记录节点的方法。

如果你想从另一个属性中获取节点,那么你需要使用 from 的tree( Ext.data.Tree) 属性store,它就像一个节点管理器。nodeHash这在属性中有一个节点记录数组。您需要迭代此 Array 并手动比较给定的属性。

完整代码:

buttonClick: function(button, e, eOpts) {
        var treepanel = button.up(...).down('treepanel');
        var node = treepanel.getStore().getNodeById(yourIDHere);
        // for custom property use this:
        /*var nodeHash = treepanel.getStore().tree.nodeHash;
        var node;
        for (var x in nodeHash) {
            if (nodeHash[x].get('customProperty') == customValue) {
                node = nodeHash[x];
                break;
            }
        } */
        treepanel.fireEvent('checkchange', node, node.get('checked'));
}
于 2013-08-26T15:28:48.320 回答