ExtJS 刷新后如何默认选中刷新前最后一次选中的节点


Posted in Javascript onApril 03, 2014

在对树节点进行操作后往往需要进行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属性才成功的。
Javascript 相关文章推荐
jquery图形密码实现方法
Mar 11 Javascript
详解JavaScript中的Unescape()和String() 函数
Nov 09 Javascript
jQuery EasyUI 入门必看
Jun 03 Javascript
js仿QQ邮箱收件人选择与搜索功能
Feb 10 Javascript
Angularjs单选改为多选的开发过程及问题解析
Feb 17 Javascript
老生常谈jquery中detach()和remove()的区别
Mar 02 Javascript
Chrome调试折腾记之JS断点调试技巧
Sep 11 Javascript
Express下采用bcryptjs进行密码加密的方法
Feb 07 Javascript
详解JavaScript中的数组合并方法和对象合并方法
May 11 Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 Javascript
Js逆向实现滑动验证码图片还原的示例代码
Mar 10 Javascript
openlayers4实现点动态扩散
Aug 17 Javascript
单击和双击事件的冲突处理示例代码
Apr 03 #Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
Apr 03 #Javascript
邮箱下拉自动填充选择示例代码附图
Apr 03 #Javascript
JS获取网页属性包括宽、高等等
Apr 03 #Javascript
jQuery的$.proxy()应用示例介绍
Apr 03 #Javascript
js实现的复制兼容chrome和IE
Apr 03 #Javascript
JS实现局部选择打印和局部不选择打印
Apr 03 #Javascript
You might like
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
php构造函数实例讲解
2013/11/13 PHP
实例讲解php数据访问
2016/05/09 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
JS实现吸顶特效
2020/01/08 Javascript
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
Python利用前序和中序遍历结果重建二叉树的方法
2016/04/27 Python
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
全球度假村:Club Med
2017/11/27 全球购物
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
大学系主任推荐信范文
2013/12/24 职场文书
促销活动总结
2014/04/28 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
MySQL锁机制
2021/04/05 MySQL
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL