项目需求:要实现一个上下级的关系的管理。而且是单击一个节点,则根据这个节点去加载对应的数据。
解决思路:要实现一个有上下级的管理,自然而然的想到用树形结构去实现。用到了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不能相同,否则会出现点击上级节点的“+”可以展开下级节点,但是如果点击“-”却不能收起下级节点的问题了。
分享到:
相关推荐
NULL 博文链接:https://8366.iteye.com/blog/544437
ztree+dwr实现的异步加载树形菜单
本人手写的一款js树形控件,附带图片,代码简洁,注释齐全,可读性高,易于维护,方便移植,结构清晰,思路明了,界面美观,同时支持异步加载,对浏览器的兼容行强,你还可以根据自己的需要扩展功能,可大量应用于...
Ext.ux.tree.treegrid异步加载,点击节点加载数据
Ext 异步加载添加 删除节点 修改combobox选择项,相当好的东西,值得参考!希望对你有用!
extjs4,当点击左边的树,右边会生成相应的面板,代码精简,欢迎大家来学习,有问题可以直接交流。
extjs tree 异步加载树型完整的一个web工程,自已已经试过,可用。
本软件实现了一个机构管理的小例子,可以点击左边树节点在右边的Grid中显示该节点的下属机构,并提供增删查改功能,主要包括JS文件和生成动态树所需要的JSON格式的数据的JAVA和jsp文件,商业逻辑请自己负责完成
目录: 1. layout-test-01.html为上下布局,...详细见代码。 ...详细见代码。 ...即:Ext.window ...6.tree-asynch-test.html为异步加载的树 7.tree-edit-test.html为节点可以编辑的树 8.tree-tz-test.html为tree节点拖拽的练习
这个包是在之前包的基础上多加了很多功能。 原来的内容: 1ext2.2源码及例子 2深入浅出extJs例子 3自己写的例子 ...3新增EXT异步加载树 4动态修改树节点图标和提示层 5ext结合mxGraph作出流程图编辑器
看看就知道了,不错的下拉树,异步加载树节点,使用Ext做的 下拉树
当树节点较多的时候很好用,具体的可以下载下来试试
媒介获取数据的,它包含异步加载、类型转换、分页等功能。Ext.data 默认支持Array、JSON、XML 等 数据格式,可以通过Memory、HTTP、ScriptTag 等方式获得这些格式的数据。如果要实现新的协议和新 的数据结构,只需要...
目录: 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 实现的是一棵异步加载的Tree,完整Demo项目,导入Eclipse就可以运行
同步调用的相关文档就少一些。一下是同步示例,即页面在加载时,或者这个js被调用到时,程序会一行一行的往下走,这在获取页面初始化需要数据或者... //这里调用的是ext的同步方法,要和异步的调用区别开来 var conn
由于是store是异步加载的,所以他会先赋值再填充值到ComboBox,,这里就需要用: 当加载完成后再进行赋值 : 复制代码 代码如下: editCityStore.load({ params: { provinceID: proid }, callback: function () { //...
# .EXT.LazyLoad 一个真正的异步惰性加载器,由惰性编码器制作。 ##Instance 将其加载为 Ink 插件。 任何时候都应该只运行 1 个实例。 < script type =" text/javascript " src =" /js/ink.LazyLoad.js " > &...
其中Ext.tree.TreeNode代表一个树节点,比较常用的属性包括text、id、icon、checked等、异步树Ext.tree.AsyncTreeNode、树加载器Ext.tree.TreeLoader。下面介绍Extjs 中的 Treepanel 实现菜单级联选中效果。 在 ...