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的event详解。
Sep 06 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
Dec 02 Javascript
JS获取html对象的几种方式介绍
Dec 05 Javascript
jQuery使用hide方法隐藏元素自身用法实例
Mar 30 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
Jul 27 Javascript
不得不分享的JavaScript常用方法函数集(上)
Dec 23 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 Javascript
js模拟支付宝密码输入框
Apr 11 Javascript
javascript填充默认头像方法
Feb 22 Javascript
开发Node CLI构建微信小程序脚手架的示例
Mar 27 Javascript
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
javascript条件式访问属性和箭头函数介绍
Nov 17 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
PHP 配置文件中open_basedir选项作用
2009/07/19 PHP
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
javaScript复制功能调用实现方案
2012/12/13 Javascript
js 中的switch表达式使用示例
2020/06/03 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
vuex的module模块用法示例
2018/11/12 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
python文件和文件夹复制函数
2020/02/07 Python
python实现打砖块游戏
2020/02/25 Python
Python3爬虫中关于中文分词的详解
2020/07/29 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
音乐教学随笔感言
2014/02/19 职场文书
党校培训自我鉴定范文
2014/04/10 职场文书
给校长的建议书范文
2015/09/14 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang