extjs4.0 tree 整体刷新,对单个节点的增删改问题
来源:互联网 发布:mac自动登录 编辑:程序博客网 时间:2024/04/29 11:13
extjs4.0 tree的刷新问题困扰了我好一段时间,看官方的例子,看api,百度谷歌是一顿搜索,但是始终不得其解。因为是要对树进行增删改的操作,所以想到只要我点了保存按钮,我让tree一次性刷新岂不是很方便的事情。treestore.load(),多方便啊,可是事实总不如愿,我是有多少节点,它就给我刷新多少次啊。去百度查,有人说load()里面是需要参数的,你想刷新哪个点就把哪个节点放进去。。。结果依然如旧。然后就是看treestore方法的各种源码,当然看不太懂,总好过瞎比划。后来想到折中的办法了。
我不是要最树进行增删改么,我就用treestore.getRootNode()或者treestore.getRootById(object id).这两个方法的返回值是Ext.data.NodeInterface.这个对象是有insert,remove方法的,可以对获取到的节点的子节点进行操作。
所以啊,如果我对tree添加了一个节点,那我就先根据id找到它的父节点,然后在调用insertChild(Number index, Ext.data.Model node ) 或者insertBefore(Node node, Node refNode, Object suppressEvents ) 方法进行添加。删除呢就是同样的找到父节点再调用removeChild(Node node, Boolean destroy, Object suppressEvents, Object suppressNodeUpdate )方法就OK。修改呢就调用replaceChild(Node newChild, Node oldChild, Object suppressEvents )。这个如果对于简单的tree来说还好办,但是如果tree数据量大,层数多,逻辑复杂的就不好整了,反正后来我是自己整迷糊了。
再后来,又回归原点,想整个刷新,一劳永逸,又是各种问,还真让我问到了。。。就是重写treestore.load()方法
Ext.override(Ext.data.TreeStore, {
load : function(options) {
options = options || {};
options.params = options.params || {};
var me = this, node = options.node || me.tree.getRootNode(), root;
// If there is not a node it means the user hasnt defined a rootnode
// yet. In this case lets just
// create one for them.
if (!node) {
node = me.setRootNode( {
expanded : true
});
}
if (me.clearOnLoad) {
node.removeAll(false);
}
Ext.applyIf(options, {
node : node
});
options.params[me.nodeParam] = node ? node.getId() : 'root';
if (node) {
node.set('loading', true);
}
return me.callParent( [ options ]);
}
});
复制粘贴到JS里面,然后慷慨大方的调用load()方法吧。。。
- extjs4.0 tree 整体刷新,对单个节点的增删改问题
- extjs4.0 tree 整体刷新,对单个节点的增删改问题
- ExtJS4.1 树的单个节点刷新
- Extjs4-数据的增删改
- extjs4 tree 节点选中问题
- Easyui tree 节点的增删改以及同后台交互
- jquery的tree增删改查节点操作
- c#对xml多属性节点的增删改操作
- 【jQuery】对网页节点的增删改查
- Dom-对节点的增删改查,替换
- 对于Extjs4中的tree无法显示根节点的问题
- Extjs4中grid的增删改操作
- 节点的增删改查
- 节点的增删改查
- Ztree 节点的增删改
- Extjs4增删改查
- java DOM 对xml文件的操作【分别对节点、节点属性、节点内容增删改查】
- Flex中Tree的用法备忘(增删改查节点)
- 常见Web技术之间的关系,你了解多少?
- 【配置文件】ActionMapping
- 家德瑞入门教程(1至3章)
- flex flash socket通信实例
- SQL语句:用count求group by分组的个数
- extjs4.0 tree 整体刷新,对单个节点的增删改问题
- oracle中的last_day()函数在sqlserver中的实现
- Linux 命令 本地调试
- 直显短信
- 家德瑞入门教程(第4章 部署家德瑞Maker程序)
- SQL Server 2008 的数据类型 HierarchyID 的使用
- sqlserver实现oracle递归树函数样例(start with.....connect by prior)
- Linux并发处理
- 抽象类和纯虚函数和接口