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 相关文章推荐
ASP Json Parser修正版
Dec 06 Javascript
iframe父页面获取子页面参数的方法
Feb 21 Javascript
jquery validate 自定义验证方法介绍 日期验证
Feb 27 Javascript
javascript里绝对用的上的字符分割函数总结
Jul 31 Javascript
javascript电商网站抢购倒计时效果实现
Nov 19 Javascript
浅析Bootstrap表格的使用
Jun 23 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
Sep 16 Javascript
jQuery实现的简单拖动层示例
Feb 22 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
Dec 11 jQuery
富文本编辑器vue2-editor实现全屏功能
May 26 Javascript
微信小程序嵌入腾讯视频源过程详解
Aug 08 Javascript
JavaScript实现复选框全选功能
Apr 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
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
Yii框架form表单用法实例
2014/12/04 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
轻松理解JavaScript闭包
2017/03/14 Javascript
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
python实现目录树生成示例
2014/03/28 Python
linux 下实现python多版本安装实践
2014/11/18 Python
深入理解python中函数传递参数是值传递还是引用传递
2017/11/07 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
Python列表(List)知识点总结
2019/02/18 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
2020/03/06 Python
python安装及变量名介绍详解
2020/12/12 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
创业计划书撰写原则
2014/01/25 职场文书
业绩考核岗位职责
2014/02/01 职场文书
服装发布会策划方案
2014/05/22 职场文书
空气环保标语
2014/06/12 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
婚前协议书标准版
2014/10/19 职场文书
2015年全民创业工作总结
2015/07/23 职场文书
iPhone13将有八大升级
2021/04/15 数码科技