ExtJS3.4-在树面板中动态添加节点
我看到很多线程都在谈论使用getNodeById或getRootNode方法和appendChild方法向TreePanel添加动态节点 由于某种原因,我做不到。我不知道我是否做错了什么,或者这是否与ExtJS3.4有关 有人能告诉我这是否正确吗ExtJS3.4-在树面板中动态添加节点,extjs,extjs3,Extjs,Extjs3,我看到很多线程都在谈论使用getNodeById或getRootNode方法和appendChild方法向TreePanel添加动态节点 由于某种原因,我做不到。我不知道我是否做错了什么,或者这是否与ExtJS3.4有关 有人能告诉我这是否正确吗 { xtype: 'treepanel', id: 'testTreePanel', autoScroll: true, width: 250, collapsible: true, title: 'Na
{
xtype: 'treepanel',
id: 'testTreePanel',
autoScroll: true,
width: 250,
collapsible: true,
title: 'Navigation',
containerScroll: true,
enableDD: true,
useArrows: true,
collapsible: true,
region: 'west',
root: {
allowDrag: false,
allowDrop: false,
iconCls: 'cover',
id: 'testRootNode',
text: 'Root Node'
},
loader: {
}
}
下面是我动态添加节点的步骤-
var testNode = new Ext.tree.TreeNode({
id: 'node_1',
leaf: true,
text: 'Test Node Text 1',
allowDrag: false,
allowDrop: false
});
Ext.getCmp('testTreePanel').getRootNode().appendChild(testNode);
如果我这样做,我会看到节点已经添加到根目录下-
Ext.getCmp('testTreePanel').getRootNode().childNodes
但是我也注意到根目录
有allowChildren:false
,load:false
,load:true
和childrenrenrenrendered:false
我看到的所有线索都说孩子应该做这个把戏。我不确定我是否遗漏了一些内容。以下代码适用于我:
var tree = new Ext.tree.TreePanel({
id: 'treePanel',
renderTo: Ext.getBody(),
autoscroll: true,
root: {
id: 'root',
text : 'Root Node',
expanded : true,
leaf:false,
children: []
}
});
var treeNode = tree.getRootNode();
treeNode.appendChild({
id: 'c1',
text: 'Child 1',
leaf: true
});
treeNode.appendChild({
id: 'c2',
text: 'Child 2',
leaf: true
});
treeNode.expandChildNodes(true);
代码的唯一区别在于,您正在将Ext.tree.TreeNode实例传递给appendChild方法,而我只传递节点的对象配置,根据文档->
这是一个微妙的区别,但似乎有很大的区别 以下代码适用于我:
var tree = new Ext.tree.TreePanel({
id: 'treePanel',
renderTo: Ext.getBody(),
autoscroll: true,
root: {
id: 'root',
text : 'Root Node',
expanded : true,
leaf:false,
children: []
}
});
var treeNode = tree.getRootNode();
treeNode.appendChild({
id: 'c1',
text: 'Child 1',
leaf: true
});
treeNode.appendChild({
id: 'c2',
text: 'Child 2',
leaf: true
});
treeNode.expandChildNodes(true);
代码的唯一区别在于,您正在将Ext.tree.TreeNode实例传递给appendChild方法,而我只传递节点的对象配置,根据文档->
这是一个微妙的区别,但似乎有很大的区别