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 相关文章推荐
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
Jul 31 Javascript
jQuery1.6 使用方法一
Nov 23 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
Mar 05 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
May 08 Javascript
基于jquery实现等比缩放图片
Dec 03 Javascript
用jquery快速解决IE输入框不能输入的问题
Oct 04 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
Dec 24 Javascript
Bootstrap表单使用方法详解
Feb 17 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
Mar 10 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
angular4自定义表单控件[(ngModel)]的实现
Nov 23 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
Sep 13 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
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
PHP定时更新程序设计思路分享
2014/06/10 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
jquery之empty()与remove()区别说明
2010/09/10 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
python3的print()函数的用法图文讲解
2019/07/16 Python
Python使用进程Process模块管理资源
2020/03/05 Python
Python如何使用paramiko模块连接linux
2020/03/18 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
英国网上电器商店:Electricshop
2020/03/15 全球购物
土建资料员岗位职责
2014/01/04 职场文书
节约电力资源的建议书
2014/03/12 职场文书
市场策划求职信
2014/08/07 职场文书
2014年学前班工作总结
2014/12/08 职场文书
运动会闭幕词
2015/01/28 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
学校教学工作总结2015
2015/05/19 职场文书
2015年中秋寄语
2015/07/31 职场文书
微信小程序实现聊天室功能
2021/06/14 Javascript
Spring Security使用单点登录的权限功能
2022/04/03 Java/Android
Oracle使用别名的好处
2022/04/19 Oracle
Java代码规范与质量检测插件SonarLint的使用
2022/08/05 Java/Android