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 相关文章推荐
学习YUI.Ext基础第一天
Mar 10 Javascript
javascript 显示当前系统时间代码
Dec 28 Javascript
jQuery1.6 正式版发布并提供下载
May 05 Javascript
判断文件是否正在被使用的JS代码
Dec 21 Javascript
JS实现让网页背景图片斜向移动的方法
Feb 25 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
JS实现兼容性较好的随屏滚动效果
Nov 09 Javascript
详解Vue demo实现商品列表的展示
May 07 Javascript
JavaScript中的 new 命令
May 22 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
Mar 04 Javascript
uni-app如何页面传参数的几种方法总结
Apr 28 Javascript
JavaScript交换变量的常用方法小结【4种方法】
May 07 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
可定制的PHP缩略图生成程式(需要GD库支持)
2007/03/06 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
javascript自启动函数的问题探讨
2013/10/05 Javascript
node.js中的path.basename方法使用说明
2014/12/09 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
Angular学习教程之RouterLink花式跳转
2018/05/03 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
python之生成多层json结构的实现
2020/02/27 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
快速创建python 虚拟环境
2020/11/28 Python
python SOCKET编程基础入门
2021/02/27 Python
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
安卓程序员求职信
2014/02/28 职场文书
剪彩仪式主持词
2014/03/19 职场文书
先进典型发言材料
2014/12/30 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
房贷收入证明范本
2015/06/12 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
聘任通知书
2015/09/21 职场文书
关于做家务的心得体会
2016/01/23 职场文书
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android