博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ExtJS 刷新后,默认选中刷新前最后一次选中的节点
阅读量:5847 次
发布时间:2019-06-18

本文共 1129 字,大约阅读时间需要 3 分钟。

      在对树节点进行操作后往往需要进行reload操作刷新一下树,但是很多业务都需要在树形刷新后默认选中最后一次选中的节点。这样就必须先保存前一次选中节点的信息,在reload之后再次通过节点的信息进行expand逐层展开到这个节点上。
      查询了好久终于找到一个可行的方案,就是通过节点的path来记录节点的位置信息,然后通过path从root节点开始逐层展开,直到最后一个节点。
完成的代码如下:
首先是extjs3.x版本中的方法:
//获取选中的节点  var node = tree.getSelectionModel().getSelectedNode();  if(node == null) { //没有选中 重载树      tree.getRootNode().reload();  } else {        //重载树 并默认选中上次选择的节点        var path = 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属性才成功的。

转载于:https://www.cnblogs.com/lslvxy/p/3567204.html

你可能感兴趣的文章
ComponentOne 2019V1火热来袭!全面支持 Visual Studio 2019——亮点之WinForm篇
查看>>
Python递归函数与匿名函数
查看>>
loadrunner安装运行一步一步来(多图)
查看>>
git请求报错 401
查看>>
监控工具htop的安装及使用
查看>>
Nodejs使用图灵机器人获取笑话
查看>>
Spring 任务调度 简单的,使用Schedule
查看>>
SQL 2005删除作业计划出错(DELETE语句与 REFERENCE约束"FK_subplan_job_id"冲突。)的解决...
查看>>
【Touch&input 】支持多个游戏控制器(18)
查看>>
我的友情链接
查看>>
SQL语句学习
查看>>
What is Cluster Aware Updating in Windows Server 2012?
查看>>
进老男孩的自我介绍和决心书
查看>>
线上Linux服务器运维安全策略经验分享
查看>>
Android一些问题的解决方案
查看>>
ios之UIToolBar
查看>>
centos 6.5 docker  安装
查看>>
C++静态局部对象
查看>>
一步步学习EF Core(3.EF Core2.0路线图)
查看>>
网络ASI
查看>>