`
laitaogood
  • 浏览: 107760 次
  • 性别: 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 异步加载树完整版

    "ext 异步加载树完整版" 提到的是EXT JS框架中的一个特性,EXT JS是一个广泛使用的JavaScript库,用于构建富客户端Web应用程序。在这个场景下,"异步加载树"是指树形组件(Tree Panel)不一次性加载所有节点,而是...

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

    现在我们来详细探讨如何利用ZTree和DWR实现异步加载树形菜单。 首先,ZTree是一个轻量级、灵活的jQuery插件,适用于构建可自定义的树形菜单。它支持多种操作,如点击节点、拖拽节点、右键菜单等,且提供了丰富的API...

    Extjs4树结构异步加载

    在本示例中,我们关注的是树结构的异步加载,这是一种优化性能的技术,避免一次性加载大量数据导致页面响应缓慢。 异步加载,也称为懒加载或需求加载,意味着当用户滚动、展开节点或者进行其他交互时,只加载当前...

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

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

    Ext.ux.tree.treegrid异步加载

    ### Ext.ux.tree.TreeGrid 异步加载知识点详解 #### 一、Ext.ux.tree.TreeGrid简介 在ExtJS框架中,`Ext.ux.tree.TreeGrid`组件是一种结合了树形结构与表格显示特性的控件,适用于展示具有层级关系的数据。通过...

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

    在Ext JS中,异步加载是一种常见的数据处理方式,尤其在构建动态的用户界面时非常有用。本篇文章主要探讨了如何在异步加载的场景下,实现树形控件(TreePanel)中节点的动态添加、删除以及ComboBox选择项的修改。 ...

    extjs tree 异步加载树型

    异步加载树型是 ExtJS Tree 的一个重要特性,允许只在需要时动态加载子节点,从而提高页面的加载速度和用户体验。 异步加载通常通过 AJAX 请求实现,只有当用户展开一个节点时,才会向服务器请求该节点的子节点数据...

    ExtJS构造动态异步加载

    title: '动态异步加载树', store: treeStore, rootVisible: false, // 隐藏根节点 renderTo: Ext.getBody(), // 渲染到页面body listeners: { itemexpand: function (node) { // 当节点被展开时触发 if (!...

    ExtJS3 实现异步下拉树

    2. **Ajax 数据源**:异步加载数据通常通过Ajax请求实现。需要定义一个`TreeStore`,配置`proxy`为`Ext.data.TreeProxy`,并设置`url`属性指定服务器接口地址,用于获取节点数据。 3. **JsonReader**:数据解析器,...

    利用Ext来实现的静态树(一次加载所有节点的树)

    在这里,我们使用Ext的Tree控件来加载树形结构的数据,并将其展现在用户面前。 下面是后台生成树形结构数据的示例代码: ```java public class TestTree { public String genStringTest() { TreeNode tn = new ...

    EXT异步树和动态表关联

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

    ext 动态加载的树源码

    异步加载更常见,它在后台进行,不会阻塞用户界面。同步加载则会等待数据加载完成后再更新界面,一般只在数据量较小或有特定需求时使用。 8. **优化技巧**:为了进一步提高性能,可以考虑缓存已加载的节点,避免...

    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.net 中树加载及实现方式,初学者可以参考

    首先,EXT.NET中的树形控件基于Ext JS库,提供丰富的功能,如拖放操作、节点编辑、异步加载等。在实际应用中,我们通常使用`TreePanel`来创建树结构。`TreePanel`包含一系列的配置项和方法,用于定义树的外观和行为...

    ext 下拉树 ext2

    总之,"ext 下拉树 ext2"是一个基于Ext JS 2.x的下拉树组件,具备异步加载树节点的能力,提供了丰富的用户体验。开发者可以通过解析给定的文件,学习如何利用JavaScript和相关的资源文件来创建并实现类似的功能。

    资源的异步动态加载问题

    异步加载是指在不阻塞主线程的情况下加载资源,使得用户界面能够及时响应,而不是等待所有资源完全下载后再显示页面。这种加载方式尤其适用于大文件,如图片、脚本或样式表,因为它们可能延长页面的加载时间。 2. ...

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

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

    Ext 两种树形菜单

    7. **异步加载**:对于大数据量的树形菜单,可以采用异步加载策略,只在需要时加载子节点,提高应用性能。 8. **多选与复选**:通过`selModel`配置,你可以实现树形菜单的多选或单选功能,甚至可以添加复选框来支持...

    Ext4 动态加载js例子

    这将在需要时异步加载 `MyApp/view/Main.js` 文件。 3. **延迟加载** 如果某些组件或类在应用启动时并不需要,但可能会在稍后的某个时刻被用到,可以使用 `requires` 属性将它们标记为延迟加载: ```javascript ...

Global site tag (gtag.js) - Google Analytics