如何选择最后选定的节点之前刷新后,ExtJS刷新

树节点的操作后,重装操作通常需要刷新树,但许多企业需要经过树刷新选择最后选定节点的默认。这样,对先前选定的节点的信息必须保存和重新加载后,第一,扩大扩展到节点进行逐层该节点的信息了。

经过长时间的搜索,终于找到了一个可行的解决方案,即通过节点路径记录节点的位置信息,然后从根节点逐层扩展到根节点到最后一个节点。

完成的代码如下所示:
首先是在extjs3 X版本的方法:
复制代码代码如下所示:
获取所选节点
var node = tree.getselectionmodel()GetSelectedNode();
如果(节点= NULL){未加载选定的树
Tree.getRootNode()()。重装;
{其他重树和默认选中的最后选定节点
VaR路径= node.getpath('id');
Tree.getLoader()负载(tree.getrootnode()),
功能(树){
Tree.expandPath(路径,'id',功能(bsucess,olastnode){
Tree.getSelectionModel()选择(olastnode);
});
},这个);
}

extjs4.2不同于EXTJS3.0的方法如下
复制代码代码如下所示:
idpath = selnode.getpath(ID);
Tree.getStore(),负载({
结:tree.getRootNode(),
回调函数(){
Tree.expandPath(idpath,'id');
}
});

应该注意的是,返回树的JSON数据必须包含id属性。我没有这个属性的最初,但我改变了参数的方法:获取文件名路径方法的另一个属性。实践证明,这是没有效果的,最后的ID属性添加到JSON。