Tree 如何重新加载树的选定节点
我需要在删除节点的一个叶子后重新加载一棵树。重新加载整个商店的问题是,它太慢了。这就是为什么我只想重新加载一个其叶被删除的节点 我试过这个。。但是上面说空Tree 如何重新加载树的选定节点,tree,extjs4,reload,treenode,Tree,Extjs4,Reload,Treenode,我需要在删除节点的一个叶子后重新加载一棵树。重新加载整个商店的问题是,它太慢了。这就是为什么我只想重新加载一个其叶被删除的节点 我试过这个。。但是上面说空 Ext.getCmp('myTree').root.reload(); 我也试过了 var tempParent = Ext.getCmp('myTree').getSelectionModel().getSelection()[0].parentNode; Ext.StoreMgr.lookup('myStore').load( {nod
Ext.getCmp('myTree').root.reload();
我也试过了
var tempParent = Ext.getCmp('myTree').getSelectionModel().getSelection()[0].parentNode;
Ext.StoreMgr.lookup('myStore').load( {node: tempParent});
这也没用。。。
有没有人有类似的问题已经解决了
更新
var node = Ext.getCmp('myTree').getSelectionModel().getSelection()[0].parentNode.get('id');
这确实给了我父节点。。。
但当我加载它时
Ext.getCmp('myTree').store.load({ node: node });
我得到这个错误
TypeError:b.getId不是函数
第二次更新--
这就是我的树的样子
- 第一节点
- 第一片叶子
- 第二节点
- 第一片叶子
- 第一节点
- 第一片叶子
- 第二节点
- 第一节点
refreshRow:function(id){
var node = this.store.getNodeById(id);
if (node){
this.store.load({node:node});
}
}
更新
var node = Ext.getCmp('myTree').getSelectionModel().getSelection()[0].parentNode.get('id');
根据您提供的信息,我的结论是,您正在尝试在树中的多个位置使用特定服务器生成的ID填充同一节点。树存储不支持此操作。即使其余节点信息相同,每个节点也必须具有唯一的ID 这棵树是固定在商店里的吗?您能否提供更多关于为什么需要重新加载父节点的信息?ExtJs通常会正确处理这个问题,而无需您做任何事情。谢谢Izhaki。。。我的树上有一个删除叶子的函数。。。可以有多个相同的leaf(假设可以有2个'leaf1')。。。因此,当我在“leaf1”上删除时,只有选定的“leaf1”被删除。。第二片叶子还在树上。。。但是当我手动刷新浏览器时,它就消失了,你不能只听节点删除;查找相关节点;同时删除它们?这正是我想做的。。。查找相关节点。。。而我似乎不能把我的头围绕着它。。。你能给我看一些样品吗?我在下面更新了我的答案。。。此refreshRow是否在beforedrop配置中?因为我在一次ajax失败fn后尝试这么做,它说GetNodeById不是一个函数,可能是因为ajax回调在windows范围内。更改代码以获取对树面板存储的引用。Yes Dbrin。。我使用了Ext.getCmp.getSelectionModel().getSelection()[0].getNodeById(id),但仍然收到相同的错误。。。但是,执行parentNode.get('id')是可行的。它给了我节点,但它说TypeError:b.getId不是loadgetNodeById上的函数是store::store.getNodeById(id)上的函数;嗯……:)。。。现在,它刷新节点,但随后在执行删除的节点上加载树的第一个节点。。。我还得到了一个错误TypeError:a[b]是未定义的