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 相关文章推荐
addEventListener()第三个参数useCapture (Boolean)详细解析
Nov 07 Javascript
jquery实现鼠标滑过小图查看大图的方法
Jul 20 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
Sep 19 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
Mar 28 Javascript
AngularJS全局scope与Isolate scope通信用法示例
Nov 22 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
Dec 18 Javascript
原生js实现form表单序列化的方法
Aug 02 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
Sep 21 Javascript
mpvue开发音频类小程序踩坑和建议详解
Mar 12 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
Apr 03 Javascript
详解ES6 扩展运算符的使用与注意事项
Nov 12 Javascript
如何让vue长列表快速加载
Mar 29 Vue.js
单击和双击事件的冲突处理示例代码
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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
关于Intype一些小问题的解决办法
2008/03/28 PHP
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
aspx中利用js实现确认删除代码
2010/07/22 Javascript
{}与function(){}选用空对象{}来存放keyValue
2012/05/23 Javascript
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
2018/11/21 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
2019/10/26 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
使用Python脚本实现批量网站存活检测遇到问题及解决方法
2016/10/11 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
浅析Python迭代器的高级用法
2020/07/16 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
什么是事务?为什么需要事务?
2012/01/09 面试题
英文版餐饮运营管理求职信
2013/11/06 职场文书
给民警的表扬信
2014/01/08 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
文体活动实施方案
2014/03/27 职场文书
教师个人师德总结
2015/02/06 职场文书
独生子女证明范本
2015/06/19 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android