`
laitaogood
  • 浏览: 106288 次
  • 性别: Icon_minigender_1
  • 来自: 豫章郡→紫禁城
社区版块
存档分类
最新评论

Ext的异步加载树

阅读更多
        项目需求:要实现一个上下级的关系的管理。而且是单击一个节点,则根据这个节点去加载对应的数据。
        解决思路:要实现一个有上下级的管理,自然而然的想到用树形结构去实现。用到了ext就会想到用ext的treePanel了。但是也考虑一个问题,是一次性加载所有的数据还是每次需要的时候加载呢?数据量大的话,前一种方式肯定不太行,如果每一次请求都取全部数据,对系统资源是一种浪费。所以,决定采用第二种方式,即异步加载tree。
        1、新建一个TreePanel,包含了一个loader和一个root节点。
var billConfigTree = new Ext.tree.TreePanel({

        	columnWidth:.33,
        	//columnHeight:.100,
        	height:600,
        	collapsible: true,
        	margins:'5 0 5 5',
        	cmargins:'5 5 5 5',
        	rootVisible:false,
        	lines:true,        		
        	autoScroll:true,
        	root: new Ext.tree.AsyncTreeNode({
        		id:'root',
        		text:'分组信息',
        		expanded :true
        	}),
        	collapseFirst:false,	
        	loader:new Ext.tree.TreeLoader({
        		dataUrl:'getNodeData.action'
        	})
		});

        2、然后我们再设置一个加载前的触发事件。
billConfigTree.on('beforeload',function(node){        
            billConfigTree.loader.dataUrl = 'getNodeData.action?nodeId='+node.id;
        });

        这样,我们就完成了一个异步加载的树形结构了。是不是很简单呢?呵呵。
         需要注意的一点是:上级节点和下级节点的id不能相同,否则会出现点击上级节点的“+”可以展开下级节点,但是如果点击“-”却不能收起下级节点的问题了。
分享到:
评论
4 楼 henchong 2012-10-10  
我现在遇到个问题,treepanel 如何设置,加载页面的时候不加载树呢?
然后我点击按钮的时候再加载数据,也是异步加载的。
3 楼 八岭书生 2012-01-11  
如果我用节点名称来模糊查询来它的树  该怎么弄啊 
2 楼 laitaogood 2009-06-30  
引用
可是当你在收起节点后,在打开某个节点时,tree还会去访问后台代码,加载节点吗,感觉好像去的是浏览器上面的缓存哦

在树加载节点之前是需要访问后台获得数据的,所以这里就没有从缓存中取数据。
引用

节点前面的图标呈现好像有点问题,老是展示不出来,用右键点“显示图像”它就又出来了

这个可以通过设置页面缓存来做,只要第一次显示出了,貌似以后就都能显示了

呵呵,谢谢你的评论。
1 楼 flybird1985 2009-06-29  
首先,定一下,确实可以做到异步加载节点的效果。
可是当你在收起节点后,在打开某个节点时,tree还会去访问后台代码,加载节点吗,感觉好像去的是浏览器上面的缓存哦,这样就会造成和数据库中节点的定义严重不吻合的情况啊。怎么样才能在每次打开节点的时候,特别是在节点收起,然后再打开的时候,也强制让tree去访问后台代码,加载节点呀。
我还有一个情况,不知道你遇到过没有,就是在在网络部怎么稳定的情况下,节点前面的图标呈现好像有点问题,老是展示不出来,用右键点“显示图像”它就又出来了,但是操作一会,又出现了现实不出来的问题,我怀疑是不是还是缓存的问题啊!
希望能和你探讨一下啦,呵呵!

相关推荐

    ext 异步加载树完整版

    NULL 博文链接:https://8366.iteye.com/blog/544437

    ztree+dwr实现的异步加载树形菜单

    ztree+dwr实现的异步加载树形菜单

    支持异步加载的纯手写的js树

    本人手写的一款js树形控件,附带图片,代码简洁,注释齐全,可读性高,易于维护,方便移植,结构清晰,思路明了,界面美观,同时支持异步加载,对浏览器的兼容行强,你还可以根据自己的需要扩展功能,可大量应用于...

    Ext.ux.tree.treegrid异步加载

    Ext.ux.tree.treegrid异步加载,点击节点加载数据

    Ext 异步加载添加 删除节点 修改combobox选择项

    Ext 异步加载添加 删除节点 修改combobox选择项,相当好的东西,值得参考!希望对你有用!

    Extjs4树结构异步加载

    extjs4,当点击左边的树,右边会生成相应的面板,代码精简,欢迎大家来学习,有问题可以直接交流。

    extjs tree 异步加载树型

    extjs tree 异步加载树型完整的一个web工程,自已已经试过,可用。

    EXT异步树和动态表关联

    本软件实现了一个机构管理的小例子,可以点击左边树节点在右边的Grid中显示该节点的下属机构,并提供增删查改功能,主要包括JS文件和生成动态树所需要的JSON格式的数据的JAVA和jsp文件,商业逻辑请自己负责完成

    EXT 布局 tab布局 普通拖拽 异步加载的树 节点可以编辑的树

    目录: 1. layout-test-01.html为上下布局,...详细见代码。 ...详细见代码。 ...即:Ext.window ...6.tree-asynch-test.html为异步加载的树 7.tree-edit-test.html为节点可以编辑的树 8.tree-tz-test.html为tree节点拖拽的练习

    Ext学习必备,涵盖大量实例,插件,其他有用组件

    这个包是在之前包的基础上多加了很多功能。 原来的内容: 1ext2.2源码及例子 2深入浅出extJs例子 3自己写的例子 ...3新增EXT异步加载树 4动态修改树节点图标和提示层 5ext结合mxGraph作出流程图编辑器

    ext 下拉树 ext2

    看看就知道了,不错的下拉树,异步加载树节点,使用Ext做的 下拉树

    ExtJs3.* 分页树 Ext.ux.tree.PagingTreeLoader

    当树节点较多的时候很好用,具体的可以下载下来试试

    Ext.data专题

    媒介获取数据的,它包含异步加载、类型转换、分页等功能。Ext.data 默认支持Array、JSON、XML 等 数据格式,可以通过Memory、HTTP、ScriptTag 等方式获得这些格式的数据。如果要实现新的协议和新 的数据结构,只需要...

    Ext例子及布局问题

    目录: 1. layout-test-01.html为上下布局,...详细见代码。 ...详细见代码。 ...即:Ext.window ...6.tree-asynch-test.html为异步加载的树 7.tree-edit-test.html为节点可以编辑的树 8.tree-tz-test.html为tree节点拖拽的练习

    Ext tree json Demo

    Ext tree 实现的是一棵异步加载的Tree,完整Demo项目,导入Eclipse就可以运行

    ext 同步和异步示例代码

    同步调用的相关文档就少一些。一下是同步示例,即页面在加载时,或者这个js被调用到时,程序会一行一行的往下走,这在获取页面初始化需要数据或者... //这里调用的是ext的同步方法,要和异步的调用区别开来 var conn

    Extjs中ComboBox加载并赋初值的实现方法

    由于是store是异步加载的,所以他会先赋值再填充值到ComboBox,,这里就需要用: 当加载完成后再进行赋值 : 复制代码 代码如下: editCityStore.load({ params: { provinceID: proid }, callback: function () { //...

    ink-lazyload:一个真正的异步懒加载器由懒惰的编码器制作

    # .EXT.LazyLoad 一个真正的异步惰性加载器,由惰性编码器制作。 ##Instance 将其加载为 Ink 插件。 任何时候都应该只运行 1 个实例。 < script type =" text/javascript " src =" /js/ink.LazyLoad.js " > &...

    Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码

    其中Ext.tree.TreeNode代表一个树节点,比较常用的属性包括text、id、icon、checked等、异步树Ext.tree.AsyncTreeNode、树加载器Ext.tree.TreeLoader。下面介绍Extjs 中的 Treepanel 实现菜单级联选中效果。 在 ...

Global site tag (gtag.js) - Google Analytics