现在需要动态的去加载一些节点的信息
如 : 树的初始化只加载了1,2层
然后当我点击一个按钮 我需要展开3 4 5层
肯定是先展开3层 然后3层加载完成后再加载4层 再5层
查询了API的一些资料 一些如expand() load的方法都为异步加载
目前是一个循环加载3 4 5
然后是加载了3层 循环马上去调用4层 出现了null 而抛异常 在方法上写上同步貌似也没用 求各位亲帮忙了!
你是异步加载的,需要在3加载完之后在回调方法里在循环掉4,在4的回调方法里循环掉5
给你看下我的代码,我的是基于Ext2.2的,我想4.0的应该也有此方法吧
[code="js"]
/*定义功能菜单树*/
var root = new Ext.tree.AsyncTreeNode({
text : root_menuname,
expanded : true,
id : '00'
});
var menuTree = new Ext.tree.TreePanel({
id:'leafMenuTree',
loader : new Ext.tree.TreeLoader({
baseAttrs : {},
dataUrl : 'menu/treelist'
}),
root : root,
autoScroll : false,
animate : false,
useArrows : false,
border : false
});
[/code]
当点击id:00的根节点,就会向dataUrl : 'menu/treelist'传一个node = 00 的参数,根据父结点等于00,返回下一级结点,返回格式按Ext Tree要求的格式返回。然后点击返回的一级菜单时,同样的处理,传一个node值为此菜单id的参数给menu/treelist处理。。。依此类推!