版本:ExtJs 4.1
要更改子项,我使用此功能:
树存储(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;
}
});
});
重新加载
在树中删除或添加项目后,我在其他地方重新加载树:
var oStore = Ext.getStore('treeStore');
oStore.load({
node : oNode,
params : {
newpath : oNode.data.path,
overwrite : true
}
});
虽然是同一个 store ,但是加载并展开到正确的路径后,由于没有调用函数treeStore
,所以图标没有变化。.on( 'expand')
为什么?
问题
如何在这个新加载的商店扩展到节点路径之前更改它的图标?
我试过的
在打电话之前,.load()
我尝试编辑孩子,oNode.eachChild(function(oChild) {}
但没有成功。