ExtJS刷新后如何默认选中刷新前最后一次选中的节点
节点 如何 默认 一次 刷新 最后 选中 Extjs
2023-06-13 09:15:24 时间
在对树节点进行操作后往往需要进行reload操作刷新一下树,但是很多业务都需要在树形刷新后默认选中最后一次选中的节点。这样就必须先保存前一次选中节点的信息,在reload之后再次通过节点的信息进行expand逐层展开到这个节点上。
查询了好久终于找到一个可行的方案,就是通过节点的path来记录节点的位置信息,然后通过path从root节点开始逐层展开,直到最后一个节点。
完成的代码如下:
首先是extjs3.x版本中的方法:
复制代码代码如下:
查询了好久终于找到一个可行的方案,就是通过节点的path来记录节点的位置信息,然后通过path从root节点开始逐层展开,直到最后一个节点。
完成的代码如下:
首先是extjs3.x版本中的方法:
//获取选中的节点
varnode=tree.getSelectionModel().getSelectedNode();
if(node==null){//没有选中重载树
tree.getRootNode().reload();
}else{//重载树并默认选中上次选择的节点
varpath=node.getPath("id");
tree.getLoader().load(tree.getRootNode(),
function(treeNode){
tree.expandPath(path,"id",function(bSucess,oLastNode){
tree.getSelectionModel().select(oLastNode);
});
},this);
}
跟Extjs3.0不同Extjs4.2的写法如下
idPath=selNode.getPath("id");
tree.getStore().load({
node:tree.getRootNode(),
callback:function(){
tree.expandPath(idPath,"id");
}
});
需要注意的是后台返回的树的json数据时节点必须包含id属性,原本我没有这个属性,但是我把getPath方法中的参数改成其他的一个属性。事实证明这样是达不到效果的,最后在json中添加了id属性才成功的。
相关文章
- MongoDB节点如何快速克隆?
- vue2 如何实现将dom元素转移到指定节点
- 如何检测分布式系统中的故障节点
- mongodb sharding ( replica set + sharding) 添加shard节点详解大数据
- JS文本节点的操作
- MySQL如何使用递归查询父节点(mysql递归父节点)
- 如何使用neo4j删除所有节点和关系?(neo4j删除所有)
- Oracle 实现高可用性配置:HA 节点设置技巧(oracleha节点)
- 如何重启单个Redis节点(单个redis怎么重启)
- 提升Redis集群性能的三大步骤(如何增加redis的节点)
- 简单几步,掌握如何启停Redis主节点(如何启停redis主节点)
- Redis集群之苦节点起不来(redis集群节点起不来)
- Redis集群添置新节点,构建更健壮的分布式环境(redis集群新增实例)
- 从节点如何在 Redis 集群中指定主从节点(redis 集群指定主从)
- 一个Redis集群如何加入一个新的节点(redis集群 加入)
- 节点灾备部署Redis集群依然保证单节点灾备(redis集群单数台)
- 重启,Redis节点再次崛起(redis节点挂掉重启)
- 如何查看Redis主节点的信息(redis查看主节点信息)
- js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码