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 相关文章推荐
ASP SQL防注入的方法
Dec 25 Javascript
JavaScript URL参数读取改进版
Jan 16 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
Aug 28 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
Nov 26 Javascript
jQuery制作可自定义大小的拼图游戏
Mar 30 Javascript
jQuery表单元素选择器代码实例
Feb 06 Javascript
Node.js中看JavaScript的引用
Apr 22 Javascript
bootstrap手风琴折叠示例代码分享
May 22 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
Nov 12 Javascript
详解Vuex管理登录状态
Nov 13 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 Javascript
24个ES6方法解决JS实际开发问题(小结)
May 31 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 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
jquery ajax return没有返回值的解决方法
2011/10/20 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
canvas时钟效果
2017/02/16 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
python生成器表达式和列表解析
2016/03/10 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
《再别康桥》教学反思
2014/02/12 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
面试感谢信范文
2015/01/22 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
运动会广播稿300字
2015/08/19 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
《曾国藩家书》读后感——读家书,立家风
2019/08/21 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers