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 自定义函数缺省值的设置方法
May 05 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
Jan 04 Javascript
IE6下opacity与JQuery的奇妙结合
Mar 01 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
May 09 Javascript
5个JavaScript经典面试题
Oct 13 Javascript
JavaScript极简入门教程(三):数组
Oct 25 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
Feb 27 Javascript
js判断子窗体是否关闭的方法
Aug 11 Javascript
JS中微信小程序自定义底部弹出框
Dec 22 Javascript
jquery实现图片平滑滚动详解
Mar 22 jQuery
vue事件修饰符和按键修饰符用法总结
Jul 25 Javascript
vue 子组件和父组件传值的示例
Sep 11 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
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
微信小程序picker组件下拉框选择input输入框的实例
2017/09/20 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
python中while循环语句用法简单实例
2015/05/07 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
解析Python3中的Import
2019/10/13 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
Keras自定义IOU方式
2020/06/10 Python
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
简单的JAVA编程面试题
2013/03/19 面试题
诚信考试标语
2014/06/24 职场文书
食品安全演讲稿
2014/09/01 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
收款委托书
2014/10/14 职场文书
黄河绝恋观后感
2015/06/08 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB