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

Posted

技术标签:

【中文标题】通过单击箭头在树 extjs 3 中加载节点【英文标题】:load node in a tree extjs 3 by clicking on the arrow 【发布时间】:2012-08-13 13:56:26 【问题描述】:

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

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

 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】:

我想通了............在 'beforeexpandnode' 事件中调用 load(node) 函数 像这样............

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

【讨论】:

以上是关于通过单击箭头在树 extjs 3 中加载节点的主要内容,如果未能解决你的问题,请参考以下文章

在 ExtJS4 TreeGrid 中加载嵌套的 JSON 数据

无法在 ExtJS4 中加载组合存储

ExtJs如何在Window窗口中加载页面上的GridPanel??

JavaScript:单击按钮后在 div 中加载图像

如何在面板-EXTJS内的列表/表中加载动态数据

EXTJS 4.1 如何在树面板中选择下一个叶节点