通过单击箭头在树extjs 3中加载节点

时间:2012-08-13 13:56:26

标签: java extjs extjs4 extjs3

我创建了一个树,在单击节点时将子节点附加到树节点。 最初在加载树时,我向每个节点添加了一个虚拟子节点,以便在节点旁边显示文件夹图标和箭头,以指示它有一些子节点,当用户单击节点时,虚拟子节点被节点替换通过加载函数的调用返回

我使用以下代码将子节点附加到树节点

 listeners: {
   'render': function(tp){

            tp.getSelectionModel().on('selectionchange', function(tree, node){

            tp.getLoader().dataUrl = '/zport/clusterSysReg?args='+node.attributes.name;
            tp.getLoader().load(node);
            ...................... 
            ......................
            }
}

到目前为止,每件事情都运行正常,但添加虚拟节点会产生问题 - 当用户点击箭头时,节点会扩展并且用户会看到虚拟节点。箭头的默认行为是展开节点。是否可以修改此行为,以便在用户单击箭头时调用 load(node)函数,用户可以看到树节点的实际子节点

谢谢,

1 个答案:

答案 0 :(得分:0)

我想出来........在'beforeexpandnode'事件中调用加载(节点)函数 像这样............

listeners: {
    'beforeexpandnode' : function(node,event){
         tree.getLoader().dataUrl = '/zport/clusterSysReg?args='+node.attributes.name;
         tree.getLoader().load(node);
         ..................
         ....................
     }
},