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 相关文章推荐
JavaScript下利用fso判断文件是否存在的代码
Dec 11 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
May 17 Javascript
浅析JavaScript基本类型与引用类型
May 28 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
Apr 07 Javascript
javascript中Date()函数在各浏览器中的显示效果
Jun 18 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
May 09 Javascript
jQuery实现邮箱下拉列表自动补全功能
Sep 08 Javascript
JS不完全国际化&本地化手册 之 理论篇
Sep 27 Javascript
vue.js项目打包上线的图文教程
Nov 16 Javascript
详解webpack3编译兼容IE8的正确姿势
Dec 21 Javascript
vue props传值失败 输出undefined的解决方法
Sep 11 Javascript
es6 filter() 数组过滤方法总结
Apr 03 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配置心得包含MYSQL5乱码解决
2006/11/20 PHP
PHP 翻页 实例代码
2009/08/07 PHP
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
js自定义事件及事件交互原理概述(二)
2013/02/01 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
JavaScript实现弹出子窗口并传值给父窗口
2014/12/18 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
详解JS实现系统登录页的登录和验证
2019/04/29 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
python处理PHP数组文本文件实例
2014/09/18 Python
Python的函数的一些高阶特性
2015/04/27 Python
Python科学画图代码分享
2017/11/29 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
浅析Python四种数据类型
2018/09/26 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
python实现文字版扫雷
2020/04/24 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
python如何构建mock接口服务
2021/01/28 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
会计系毕业个人自荐信格式
2013/09/23 职场文书
我与祖国共奋进演讲稿
2014/09/13 职场文书
党员剖析材料范文
2014/12/18 职场文书
节约用电倡议书
2015/04/28 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
微信小程序调用python模型
2022/04/21 Python