バージョン: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;
}
});
});
リロード
ツリー内のアイテムを削除または追加した後、次の場所でツリーをリロードします。
var oStore = Ext.getStore('treeStore');
oStore.load({
node : oNode,
params : {
newpath : oNode.data.path,
overwrite : true
}
});
同じストアですが、ロードして正しいパスに展開した後、関数が呼び出されないtreeStore
ため、アイコンは変更されません。.on( 'expand')
なんで?
質問
ノードパスに展開する前に、この新しくロードされたストアのアイコンを変更するにはどうすればよいですか?
私が試したこと
電話.load()
をかける前に、子供たちを編集しようとしましoNode.eachChild(function(oChild) {}
たが、成功しませんでした。