版本:ExtJs 4.1
要更改子项,我使用此函数:
TreeStore (Ext.data.TreeStore)
storeId : 'treeStore',
...
constructor: function( oConfig ) {
...
this.on( 'expand', function( oObj ) {
oObj.eachChild(function(oNode) {
switch(oNode.data.type) {
case "report":
oNode.set('icon', strIconReport);
break;
case "view":
oNode.set('icon', strIconView);
break;
}
});
});
Reload
删除或添加树中的项目后,我将树重新加载到其他地方:
var oStore = Ext.getStore('treeStore');
oStore.load({
node : oNode,
params : {
newpath : oNode.data.path,
overwrite : true
}
});
虽然它是相同的存储 treeStore
,但在加载并扩展到正确的路径后,由于未调用 .on( 'expand')
函数,因此图标不会更改 . 为什么?
Question
如何在扩展到节点路径之前更改此新加载的商店的图标?
What I tried
在调用 .load()
之前,我尝试使用 oNode.eachChild(function(oChild) {}
编辑子项但没有成功 .
1 回答
我提出了解决方案,这很容易 . 我不再更改
expand
,而是更改load
.所以它改变了扩展和加载上的图标,如下所示: