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 相关文章推荐
Js 获取HTML DOM节点元素的方法小结
Apr 24 Javascript
js function定义函数使用心得
Apr 15 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
Apr 12 Javascript
jquery图片延迟加载 前端开发技能必备系列
Jun 18 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
May 16 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
Mar 07 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
Dec 22 Javascript
Webpack实战加载SVG的方法
Dec 26 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
Jan 12 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
Aug 03 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
Nov 07 Javascript
JS原形与原型链深入详解
May 09 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连接access数据库
2008/03/27 PHP
php出现Cannot modify header information问题的解决方法大全
2008/04/09 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
15款最好的Bootstrap在线编辑器
2016/08/03 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
理解javascript async的用法
2017/08/22 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
python中偏函数partial用法实例分析
2015/07/08 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
python实现批量图片格式转换
2020/06/16 Python
flask-restful使用总结
2018/12/04 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
python 列表输出重复值以及对应的角标方法
2019/06/11 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
python实现斗地主分牌洗牌
2020/06/22 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
ajax是什么及其工作原理
2012/02/08 面试题
战略合作意向书
2014/07/29 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
外国人来华邀请函
2015/01/31 职场文书
行政助理岗位职责
2015/02/10 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL