我在用ext的treepanel写树的时候,当加载完子节点之后,无法选中该节点,如果点击,会自动自动选中
我写的这个树加上根节点也最多只能是三层,当点击根节点之后,根据一个url加载第二层的节点,如果点击的是第二层节点时,改变treeloader的dataurl,加载第三层,代码如下:
- JScript code
var moduleLoadUrl = '<%= path%>/module/moduleGroup_treeList'; //treloader的dataurl //根节点 var moduleMenuRoot = new Ext.tree.AsyncTreeNode({id: '0', text: '模块管理', qtip: '模块管理', expanded : false }); var moduleTreeLoader = new Ext.tree.TreeLoader({ dataUrl: '<%= path%>/module/moduleGroup_treeList' //默认根的数据加载地址 }); //树 var moduleMenuTree = new Ext.tree.TreePanel({ region: 'center', id: 'moduleMenuTree', autoScroll: true, containerScroll : true, border: false, root: moduleMenuRoot, loader: moduleTreeLoader }); //在数据加载之前,检查点击的是第几层数据,相对应的改变dataurl moduleMenuTree.on('beforeload', function(node) { moduleLoadUrl = '<%= path%>/module/module_treeList?groupid=' + node.id; //第三层数据的加载地址 if(node == moduleMenuRoot) { //如果是根节点, 则加载地址用加载第二层数据的地址 moduleLoadUrl = '<%= path%>/module/moduleGroup_treeList'; } moduleMenuTree.loader.dataUrl = moduleLoadUrl; // 更改Loader的数据加载地址 });
还有另外一棵树,没有这样改dataurl,一直用同一个url加载数据,就不会出现这问题,是不是我的动态更改dataurl的方法哪里有问题,我要怎么改
------解决方案--------------------
id在js中是不能重复的,重复的都会有问题。我以前做tab的时候就遇到过!