ExtJS动态树实现与示例代码

EXTJS 的动态树,挺实用的,尤其是在展示层次结构数据的时候。你可以根据需求动态加载树节点,避免一次性加载整个树,节省页面的加载时间,提高用户体验。这个动态树用的就是Ext.data.TreeStore,它能树状结构的数据,你只需要定义好数据模型,就能轻松搞定。而且,你还可以用Ajax来异步加载子节点,懒加载(Lazy Loading)让一切都变得高效。举个例子,当用户点击展开节点时,子节点才会通过求加载进来,这就避免了不必要的初始加载压力。EXTJS了丰富的事件,比如说节点点击、加载等,可以在这些事件上做些自定义操作。

不过要注意的是,动态树的配置还是要根据具体需求来调整,比如节点的展开、加载方式等。而且,使用这种方法时,最好优化下求的频率,避免频繁的网络求影响性能。,挺适合用来做文件系统、组织结构等场景的树形展示。

你可以参考下这个代码实现:

Ext.define('TreeNode', { extend: 'Ext.data.Model', fields: ['id', 'text', 'leaf'] });
var store = Ext.create('Ext.data.TreeStore', { model: 'TreeNode', root: { expanded: true, children: function() { return Ext.Ajax.request({ url: 'getChildren', success: function(response) { var data = Ext.decode(response.responseText); this.set('children', data); }, scope: this }); } } });
var treePanel = Ext.create('Ext.tree.Panel', { store: store, renderTo: Ext.getBody(), title: '动态树', width: 300, height: 300, viewConfig: { animate: true } });

rar 文件大小:1.69MB