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 相关文章推荐
JavaScript父子窗体间的调用方法
Mar 31 Javascript
招聘网站基于jQuery实现自动刷新简历
May 10 Javascript
AngularJS中的过滤器使用详解
Jun 16 Javascript
vue2.0+webpack环境的构造过程
Nov 08 Javascript
Bootstrap栅格系统的使用和理解2
Dec 14 Javascript
three.js快速入门【推荐】
Jan 21 Javascript
Bootstrap列表组学习使用
Feb 09 Javascript
关于JavaScript中的this指向问题总结篇
Jul 23 Javascript
angular2+node.js express打包部署的实战
Jul 27 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
Sep 07 Javascript
修改vue源码实现动态路由缓存的方法
Jan 21 Javascript
原生JavaScript实现弹幕组件的示例代码
Oct 12 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文件操作的详细诠释
2013/06/21 PHP
基于jquery的图片轮播 tab切换组件
2012/07/19 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
vue v-on监听事件详解
2017/05/17 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
python开发之文件操作用法实例
2015/11/13 Python
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
python 类对象和实例对象动态添加方法(分享)
2017/12/31 Python
Django中url的反向查询的方法
2018/03/14 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
Python实现Linux监控的方法
2019/05/16 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
用Python写一个自动木马程序
2019/09/17 Python
两种CSS3伪类选择器详细介绍
2013/12/24 HTML / CSS
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
打架检讨书50字
2014/01/11 职场文书
活动策划邀请函
2014/02/06 职场文书
网络技术专业求职信
2014/05/02 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
详解MySQL 用户权限管理
2021/04/20 MySQL
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS