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 相关文章推荐
Bootstrap三种表单布局的使用方法
Jun 21 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
Aug 08 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
Sep 04 Javascript
Angular2 (RC5) 路由与导航详解
Sep 21 Javascript
node学习记录之搭建web服务器教程
Feb 16 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 jQuery
微信小程序 转发功能的实现
Aug 04 Javascript
详解Webpack实战之构建 Electron 应用
Dec 25 Javascript
11行JS代码制作二维码生成功能
Mar 09 Javascript
vue中datepicker的使用教程实例代码详解
Jul 08 Javascript
jquery实现购物车基本功能
Oct 25 jQuery
Javascript实现简易天数计算器
May 18 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
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
javascript bom是什么及bom和dom的区别
2015/11/26 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
深入理解vue中的$set
2017/06/01 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
python实现的多线程端口扫描功能示例
2017/01/21 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
保时捷设计:Porsche Design
2019/03/30 全球购物
武汉某公司的C#笔试题面试题
2015/12/25 面试题
天网工程实施方案
2014/03/26 职场文书
环保建议书500字
2014/05/14 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
感谢信范文大全
2015/01/23 职场文书
美术教师个人工作总结
2015/02/06 职场文书
高中生物教学反思
2016/02/20 职场文书
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL