2013-08-26 36 views

回答

2

解雇你需要有节点checkchange,如果它检查。

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

此TreeStore有getNodeById(id)方法,它通过id返回记录节点。

如果要从其他属性获取节点,则需要使用store中的treeExt.data.Tree)属性,该属性类似于节点管理器。这在nodeHash属性中有一个节点记录数组。您需要迭代此数组并手动比较给定的属性。

的完整代码:

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')); 
}