Ext treeLoader 同步、异步加载树 问题
来源:互联网 发布:扛旗世界纪录 知乎 编辑:程序博客网 时间:2024/06/10 07:47
前台代码:
Ext.onReady(function(){Ext.BLANK_IMAGE_URL="/commons/extjs2.1/extjs/resources/images/default/s.gif";var root= new Ext.tree.AsyncTreeNode( { id:'1', text: '我是树根' } );var loader= new Ext.tree.TreeLoader( {dataUrl: 'aa.jsp'});var treePanel;treePanel= new Ext.tree.TreePanel( { renderTo: 'tree', root: root, loader: loader} ); loader.on('beforeload',function(loader,node){ this.baseParams.id=node.id; //通过这个传递参数,这样就可以点一个节点出来它的子节点来实现异步加载},loader); });
后台代码:aa.jsp
<%String id= request.getParameter("id");if(id.equals("1")){ out.println("[{text: '1节点', id: '2'},{text: '2子叶', leaf: true, id: 'node2'}]");}else if(id.equals("2")){ out.println("[{text: '1_1子叶', leaf: true,id: 'node1_1'}]");}%>
2.同步加载树,将所有的树的信息以json语句都返回并加载到 tree上,不用点一个节点去访问以下后台
前台代码:
Ext.onReady(function(){Ext.BLANK_IMAGE_URL="/commons/extjs2.1/extjs/resources/images/default/s.gif";var root= new Ext.tree.AsyncTreeNode( { id:'1', text: '我是树根' } );var loader= new Ext.tree.TreeLoader( {dataUrl: 'bb.jsp'});var treePanel;treePanel= new Ext.tree.TreePanel( { renderTo: 'tree', root: root, loader: loader} ); });
后台代码:bb.jsp
<% out.println("[{text: '1节点', id: '2',children: [{text: '1_1子叶',id: 'node1_1',children:[{text: '1_1子叶', leaf: true,id: 'node1_12'}]},{text: '1_2子叶', leaf: true,id: 'node1_2'} ] },{text: '2子叶', leaf: true, id: 'node2'}]");%>
注意:个人感觉用异步加载好,因为这样不浪费资源,需要查看什么节点从后台获取节点数据显示,而同步加载不管需不需要看,都会将所有节点都返回
遇到的问题:当使用同步加载后,例如删除了node这个节点(非root节点)下的某个子节点,想要刷新该节点node并重新展开该节点时,不知道怎么办,
方法1:行不通
使用
但是此方法行不通,因为同步树加载时已经将所有的节点都返回并加载到了root上,再使用loader.load并不会再次访问 bb.jsp,如果将loader.load(node)换成loader.load(root)时就可以访问bb.jsp,看方法2,方法3
方法2:行不通
使用
loader.load(root, function(){
当loader.load(root)时,可以再次访问bb.jsp,但是node.expand(true, true)却会报错,因为这个时候root并没有展开,它找不到深藏的node节点
方法3: 可以试试,我自己试了可以行得通
使用
var path= node.getPath(); loader.load(root, function(){ treePanel.expandPath(path); //这样就可以展开node了})
注意:异步加载不会出现这样的问题,例如想要重新加载node,就可以使用
loader.load(node, function() { node.expand(true, true); })
- Ext treeLoader 同步、异步加载树 问题
- Ext treeLoader 同步、异步加载树 问题
- Ext treeLoader 同步、异步加载树 问题
- Ext.tree.TreeLoader异步加载数据
- EXT JS 异步动态树服务端加载 Ext.tree.TreeLoader异步服务端加载
- Ext中TreeLoader加载json数据文件问题
- ext异步加载树
- ext 异步加载树_1
- ext 异步加载树_2
- EXT 重写treeLoader
- Ext js Ext.Ajax.request同步和异步问题
- Ext js Ext.Ajax.request同步和异步问题
- Ext异步加载JS
- ext treegrid 异步加载
- ext中的同步和异步
- Ext Tree 异步加载数据
- 异步&同步加载树节点----zTree(一)
- 页面同步加载&&异步加载
- 来自 博主:coyoo
- 多些时间能少写些代码
- (转)Facebook是如何开发软件的
- google map flex
- fedora 15+php 5.3.8+nginx-1.1.6
- Ext treeLoader 同步、异步加载树 问题
- C++ 类中的静态变量和静态成员函数(转)
- Linux设备驱动开发详解-第6章字符设备驱动(二)-支持2个globalmem
- 服务器 too many open files 解决
- 到CSDN上课的感受
- 注册不久
- python中文decode和encode转码
- The execute sequence when using the WHERE and GROUP BY Clauses Together
- 快速配置 Samba 将 Linux 目录映射为 Windows 驱动器,用于跨平台编程