即时通讯使用extjs treepanel.In即动态加载父节点和子节点。我想一次打开一个节点。我不希望同时打开两个节点。在分机中是否有任何事件或财产? Collapseall()方法对我没有帮助。
var panel = new Ext.tree.TreePanel({
cls: 'shaperepository',
loader: new Ext.tree.TreeLoader(),
root: this.shapeList,
autoScroll: true,
rootVisible: false,
lines: false,
anchors: '0, -30',
.....
var tree = new Ext.tree.TreePanel({
cls: "Schematree",
loader: new Ext.tree.TreeLoader(),
width: 150,
height: 250,
root: new Ext.tree.AsyncTreeNode({
expanded: true,
leaf: false,
text: 'Schema',
children: children
})
});
答案 0 :(得分:0)
您可以使用expand
事件。
我不知道你想从问题中得到什么样的确切行为,但你可以获得根节点,使用true运行collapseAll以递归关闭所有节点。然后在collaspeAll回调中展开事件被触发的节点及其任何父节点(递归)。
NodeInterface的文档可能会有所帮助。
我能想到的唯一另一个选择是递归地调用所有兄弟姐妹的collaspeAll(previousSibling和nextSibling递归)以及父母的兄弟姐妹。这会折叠除节点之外的所有节点以及刚刚展开的父节点。这种方法应该减少重绘次数,但我没有尝试过任何一种方法。