ExtJS 刷新后如何默认选中刷新前最后一次选中的节点_extjs

在对树节点进行操作后往往需要进行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属性才成功的。

时间: 2024-09-02 15:29:40

ExtJS 刷新后如何默认选中刷新前最后一次选中的节点_extjs的相关文章

ExtJS 刷新后如何默认选中刷新前最后一次选中的节点

 这篇文章主要介绍了ExtJS 刷新后如何默认选中刷新前最后一次选中的节点,需要的朋友可以参考下 在对树节点进行操作后往往需要进行reload操作刷新一下树,但是很多业务都需要在树形刷新后默认选中最后一次选中的节点.这样就必须先保存前一次选中节点的信息,在reload之后再次通过节点的信息进行expand逐层展开到这个节点上.    查询了好久终于找到一个可行的方案,就是通过节点的path来记录节点的位置信息,然后通过path从root节点开始逐层展开,直到最后一个节点.    完成的代码如下:

ExtJS 刷新后,默认选中刷新前最后一次选中的节点

在对树节点进行操作后往往需要进行reload操作刷新一下树,但是很多业务都需要在树形刷新后默认 选中最后一次选中的节点.这样就必须先保存前一次选中节点的信息,在reload之后再次通过节点的信息 进行expand逐层展开到这个节点上. 查询了好久终于找到一个可行的方案,就是通过节点的path来记录节点的位置信息,然后通过path从 root节点开始逐层展开,直到最后一个节点. 完成的代码如下: 首先是extjs3.x版本中的方法: //获取选中的节点 var node = tree.getSel

DevExpress GridControl 选中行在数据刷新后改变

问题描述 绑定DataSource后用RefreshDataSource方法刷新数据发现之前被选中的行变成了别的行请问各位大神怎么解决这个问题 解决方案 解决方案二:被选中行时记录一个rowindex刷新之后重新设置selectedindex为rowindex解决方案三:那是因为你刷新数据后控件上的数据进行排序了,没代码也说明不了太多,你就按照个这个思路改吧解决方案四:刷新前,记录row,刷新后,重新设.

两级联动select刷新后其值保持不变的实现方法_php技巧

背景 还是学院和专业的关系,我需要保持点击提交按钮后,页面select中继续维持提交前的值 网上有几种办法,要么通过url跳转时候附带参数形式传回页面,或者提交时候讲select的值保存在cookie中,提交后再把cookie中的值填回select中. 我是按照保存在cookie中的方法实现刷新后select值不变,对select设置一个onchange事件 复制代码 代码如下: <script type="text/javascript"> window.onload =

ajax-jsp中我用go(-1)回滚到上一页面,并且回滚后的当前页面刷新一次,要详细的!

问题描述 jsp中我用go(-1)回滚到上一页面,并且回滚后的当前页面刷新一次,要详细的! jsp中我用go(-1)回滚到上一页面,并且回滚后的当前页面刷新一次,要详细的,谢谢! 解决方案 history.go或者back后退页面是不会更新的,用response.redirect跳转到你的页面再加个时间戳参数防止缓存

网页有时候错位,刷新后就正常问题之分析

 如果你的网站某个页面有时候打开错位,但是再次刷新有可以正常显示,这种情况大部分是div+css做的网站,也是现在比较流行的.以前table结构的网页基本不会出现这种情况.   从网站代码分析:错位?什么情况下能导致错位呢?   下面是常见的几种错误原因:   -------------------------------------------------------------------------------- 1. 内部容器宽度设置超出了外部容器宽度:   2. 内部多个并列容器宽度相

后台-我用jsp做的网站,有时候点的某个连接后,服务器一直加载不出来,刷新后加载也不行,只有重启服务

问题描述 我用jsp做的网站,有时候点的某个连接后,服务器一直加载不出来,刷新后加载也不行,只有重启服务 前台使用的别人的框架 J-UI .后台是Hibernate-struts2-spring,有的时候点了某个链接之后就一直加载,没有反应,访问其他的页面还能进去,如果再回来访问这个页面也进不去,刷新也不行,只能重启服务器,照这么下去这网站属于废货了,根本没法用.帮帮忙吧各位.... 解决方案 有没有可能是内存溢出的问题

tabhost-安卓数据库改变后,界面的刷新问题

问题描述 安卓数据库改变后,界面的刷新问题 目前学习中遇到的一个问题,希望大神给予解决. 我的activity继承自tabActivity, 给里面的tabhost添加或者删除一个选项的时候,后台的数据库已经才做成功了.但是界面上的东西没办法立即刷新. 需要我退出当前activity然后再重新进来才能将界面刷新. 之前用的listview也存在这个问题,我用notifyDataSetChanged():这个函数解决了.但是现在是tabhost的选项卡添加问题,不知道怎么弄. 小弟刚学安卓,对一些

java-response重定向后,为何页面需要刷新后才会跳转?

问题描述 response重定向后,为何页面需要刷新后才会跳转? 现在在做一个web应用系统,前端框架是Extjs5.1,后端框架是spring+springMVC+hibernate. 加了一个登录过滤器,当session失效后,再点击页面中的任意功能菜单就要跳转到登录页面,我在验证session为空后,用response.sendRedirect()重定向到登录页面, 但是现在的问题是: session失效后,我点击任意功能菜单不会显示数据,页面不跳转,地址栏网址也不会变,必须要按F5刷新后