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实现弹窗插件功能实例代码分享
Dec 12 Javascript
javascript实例分享---具有立体效果的图片特效
Jun 08 Javascript
js实现按Ctrl+Enter发送效果
Sep 18 Javascript
使用jquery制作弹出框效果
Apr 03 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
Mar 01 Javascript
JavaScript表单验证完美代码
Mar 02 Javascript
angular学习之从零搭建一个angular4.0项目
Jul 10 Javascript
浅谈webpack组织模块的原理
Mar 10 Javascript
详解webpack打包第三方类库的正确姿势
Oct 20 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
Jun 11 Javascript
vuex 动态注册方法 registerModule的实现
Jul 03 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
Jul 28 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
mysql+php分页类(已测)
2008/03/31 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
yii2安装详细流程
2018/05/23 PHP
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
javascript如何使用bind指定接收者
2014/05/04 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
理解javascript正则表达式
2016/03/08 Javascript
jQuery 判断元素整理汇总
2017/02/28 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
[40:04]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
分享vim python缩进等一些配置
2018/07/02 Python
django解决跨域请求的问题
2018/11/11 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
Python类中self参数用法详解
2020/02/13 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
Python可以实现栈的结构吗
2020/05/27 Python
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
Paper Cape官网:美国婴儿和儿童服装品牌
2019/11/02 全球购物
大学毕业生通用自我评价
2014/01/05 职场文书
小学二年级学生评语
2014/04/21 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
2014年维稳工作总结
2014/11/18 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
大学生安全教育心得体会
2016/01/15 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书