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与jquery中获取当前鼠标的x、y坐标位置的代码
May 23 Javascript
一个实用的图片切换支持点击切换和自动轮播
Sep 09 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
Jul 24 Javascript
JavaScript省市区三级联动菜单效果
Sep 21 Javascript
input框中的name和id的区别
Nov 16 Javascript
Angularjs 依赖压缩及自定义过滤器写法
Feb 04 Javascript
详解前后端分离之VueJS前端
May 24 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
Mar 01 Javascript
jquery插件开发模式实例详解
Jul 20 jQuery
解决微信小程序中的滚动穿透问题
Sep 16 Javascript
jQuery treeview树形结构应用
Mar 24 jQuery
AngularJS实现多级下拉框
Mar 25 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
GD输出汉字的函数的分析
2006/10/09 PHP
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
php array_unique之后json_encode需要注意
2011/01/02 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
php的ZipArchive类用法实例
2014/10/20 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
js实现日期级联效果
2014/01/23 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
Python-基础-入门 简介
2014/08/09 Python
编写Python CGI脚本的教程
2015/06/29 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
Python使用pycharm导入pymysql教程
2020/09/16 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
自荐信怎么写好
2013/11/11 职场文书
党风廉设责任书
2014/04/16 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
公司董事长岗位职责
2014/06/08 职场文书
标准毕业生自荐信
2014/06/24 职场文书
节能环保演讲稿
2014/08/28 职场文书
店铺转让协议书
2014/12/02 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
目标责任书格式范文
2015/05/11 职场文书
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers