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入门·图片对象(无刷新变换图片)\滚动图像
Oct 01 Javascript
实现变速回到顶部的JavaScript代码
May 09 Javascript
JavaScript面向对象(极简主义法minimalist approach)
Jul 17 Javascript
JavaScript表格常用操作方法汇总
Apr 15 Javascript
JavaScript实现快速排序的方法
Jul 31 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
Dec 13 Javascript
jQuery源码分析之sizzle选择器详解
Feb 13 Javascript
基于Vue实例对象的数据选项
Aug 09 Javascript
JQuery判断radio单选框是否选中并获取值的方法
Jan 17 jQuery
Smartour 让网页导览变得更简单(推荐)
Jul 19 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
Dec 09 Javascript
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
Apr 09 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调用Java对象的方法
2006/10/09 PHP
说说PHP的autoLoad自动加载机制
2012/09/27 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
随机显示经典句子或诗歌的javascript脚本
2007/08/04 Javascript
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
Swift中的协议(protocol)学习教程
2016/07/08 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
python自动点赞功能的实现思路
2020/02/26 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
建筑专业毕业生推荐信
2013/11/21 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
《落花生》教学反思
2016/02/16 职场文书
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android
mysql序号rownum行号实现方式
2022/12/24 MySQL