通过单击箭头在树 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 数据