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 相关文章推荐
jQuery实现的类flash菜单效果代码
May 17 Javascript
jQuery文本框(input textare)事件绑定方法教程
Apr 24 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
Jun 19 Javascript
jQuery网页右侧广告跟随滚动代码分享
Apr 20 Javascript
Bootstrap每天必学之导航条(二)
Mar 01 Javascript
JS回调函数基本定义与用法实例分析
May 24 Javascript
React利用插件和不用插件实现双向绑定的方法详解
Jul 03 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
Sep 18 Javascript
微信小程序button组件使用详解
Jan 31 Javascript
Vue程序调试的方法
Jun 17 Javascript
vue实现购物车的监听
Apr 20 Javascript
vue使用vant中的checkbox实现全选功能
Nov 17 Vue.js
单击和双击事件的冲突处理示例代码
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公用函数列表[正则]
2007/02/22 PHP
php下使用无限生命期Session的方法
2007/03/16 PHP
PHP 简单数组排序实现代码
2009/08/05 PHP
PHP 字符串分割和比较
2009/10/06 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
python如何为被装饰的函数保留元数据
2018/03/21 Python
python邮件发送smtplib使用详解
2020/06/16 Python
python程序变成软件的实操方法
2019/06/24 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
python中的itertools的使用详解
2020/01/13 Python
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
学生档案自我鉴定
2013/10/07 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
总裁助理岗位职责
2014/02/17 职场文书
保密工作目标责任书
2014/07/28 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
企业贷款委托书格式
2014/09/12 职场文书
党员对照检查材料
2014/09/22 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
2014个人年度工作总结
2014/12/15 职场文书
法定代表人身份证明书
2015/06/18 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript