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绑定事件this指向发生改变的问题解决方法
Apr 23 Javascript
鼠标经过显示二级菜单js特效
Aug 13 Javascript
js计算字符串长度包含的中文是utf8格式
Oct 15 Javascript
IE下通过a实现location.href 获取referer的值
Sep 04 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
Oct 16 Javascript
JS实现文字掉落效果的方法
May 06 Javascript
js去除浏览器默认底图的方法
Jun 08 Javascript
jquery实现仿新浪微博评论滚动效果
Aug 06 Javascript
JavaScript统计网站访问次数的实现代码
Nov 18 Javascript
javascript模块化简单解析
Apr 07 Javascript
AngularJS入门教程之迭代器过滤详解
Aug 18 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
Aug 09 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部分常见问题总结
2006/10/09 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
jQuery 学习 几种常用方法
2009/06/11 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
清除输入框内的空格
2016/12/21 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
template.js前端模板引擎使用详解
2017/10/10 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
PyQt编程之如何在屏幕中央显示窗体的实例
2019/06/18 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
业务员岗位职责
2013/11/16 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
冰峪沟导游词
2015/02/09 职场文书
企业文化学习心得体会
2016/01/21 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
JAVA API 实用类 String详解
2021/10/05 Java/Android
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python