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 相关文章推荐
新页面打开实际尺寸的图片
Aug 25 Javascript
PPK 谈 JavaScript 的 this 关键字 [翻译]
Sep 29 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
Jul 31 Javascript
在JavaScript中处理时间之getHours()方法的使用
Jun 10 Javascript
JavaScript_ECMA5数组新特性详解
Jun 12 Javascript
基于WebUploader的文件上传js插件
Aug 19 Javascript
浅谈JS之tagNaem和nodeName
Sep 13 Javascript
基于模板引擎Jade的应用(详解)
Dec 12 Javascript
JQuery通过后台获取数据遍历到前台的方法
Aug 13 jQuery
Vue移动端实现图片上传及超过1M压缩上传
Dec 23 Javascript
京东优选小程序的实现代码示例
Feb 25 Javascript
微信小程序利用button控制条件标签的变量问题
Mar 15 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 第二节 数据类型之字符串类型
2012/04/28 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
pandas object格式转float64格式的方法
2018/04/10 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
努比亚手机官网:nubia
2016/10/06 全球购物
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
幼儿园招生广告
2014/03/19 职场文书
应届生求职信范文
2014/05/26 职场文书
社团活动总结怎么写
2014/06/30 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
2015年教师党员公开承诺书
2015/01/22 职场文书
党员自我评价2015
2015/03/03 职场文书
交通安全教育主题班会
2015/08/12 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
python Tkinter模块使用方法详解
2022/04/07 Python
js作用域及作用域链工作引擎
2022/07/07 Javascript