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创建对象的几种常用方式小结(推荐)
Oct 24 Javascript
基于jquery实现等比缩放图片
Dec 03 Javascript
js实现上传图片预览的方法
Feb 09 Javascript
js计算文本框输入的字符数
Oct 23 Javascript
jQuery实现的瀑布流加载效果示例
Sep 13 Javascript
微信小程序网络请求的封装与填坑之路
Apr 01 Javascript
利用PM2部署node.js项目的方法教程
May 10 Javascript
微信小程序实现判断是分享到群还是个人功能示例
May 03 Javascript
js中arguments对象的深入理解
May 14 Javascript
TypeScript类型声明书写详解
Aug 28 Javascript
vue Tab切换以及缓存页面处理的几种方式
Nov 05 Javascript
让JavaScript代码更加精简的方法技巧
Jun 01 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
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
2013/12/26 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
TensorFlow神经网络优化策略学习
2018/03/09 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
python利用opencv保存、播放视频
2020/11/02 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
公司出纳岗位职责
2013/12/07 职场文书
2014年班级工作总结
2014/11/14 职场文书
安全生产培训心得体会
2016/01/18 职场文书
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
Vue h函数的使用详解
2022/02/18 Vue.js
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android