由于每个节点的onclick,我的树加载速度非常慢,在centerpanel中创建了tabpanel。现在,我想更改代码,如节点/图标点击仅加载子节点。双击节点加载选项卡面板。即我想先加载我的树。
treePanel.on('expand',function(node){
alert("Expand event")
var iconClass=node.getUI().getIconEl().className;
node.getUI().getIconEl().className="x-tree-node-icon loading_icon";
var ajaxReq = ajaxRequest(node.attributes.url,0,"GET",true);
ajaxReq.request({
success: function(xhr) {
var response=Ext.util.JSON.decode(xhr.responseText);
appendChildNodes(response.nodes,node); //method to add child nodes
node.expand();
node.getUI().getIconEl().className=iconClass;
},
failure: function(xhr){
Ext.MessageBox.alert( _("Failure") , xhr.statusText);
node.getUI().getIconEl().className=iconClass;
}
});
});
rootNode.firstChild.fireEvent('expand',rootNode.firstChild);
答案 0 :(得分:0)
您可以在加载前捕获:
tree.on( 'beforeload', function( oStore, oOperation, oOpts ) { }
负载:
tree.on( 'load', function( oStore, oNode, oNodes ) { }
对于图标:
tree.on( 'expand', function( oNode, arChildren ) { }
然后获取一个节点并更改图标:
oNode.set('icon', ... );