ExtJS的刷新树店(extjs refresh tree store)

2019-09-17 03:55发布

如何刷新树商店?

我试图做这样的:

Ext.getStore('myStore').setRootNode({child: []});

然后商店将要求服务器有孩子,但有时它给了我一个孩子的两倍。 在我的树,我得到这样的:

child1
child2
child1

并且也有一个JavaScript错误:

Uncaught TypeError: Cannot read property 'internalId' of undefined
Ext.define.updateIndexes ext-all-debug.js:61588
Ext.define.onAdd ext-all-debug.js:61513
Base.implement.callParent ext-all-debug.js:3728

它是一个错误还是我做错了什么?

Answer 1:

我不知道你用的是什么版本的ExtJS的,但这里是我使用load方法如何刷新我的商店在4.1(你可能会或可能不会有参数的,我有一个):

this.getStore('MyTreeStore').load({ params: { id: this.getId().getValue()} });

这家店刷新与没有从以前的负荷重复的新记录。

我有我的商店的设置,如下所示:

Ext.define('MyApp.store.MyTreeStore', {
    extend: 'Ext.data.TreeStore',
    model: 'MyApp.model.MyTreeModel',

    root: {
          children: []
    },

    proxy: {
        type: 'ajax',
        url: '/MyApp/Chart/GetTree'
    },
    fields: [
         { name: 'id', type: 'int' }
    ]
});

我的树是这个样子:

Ext.define('MyApp.view.chart.MyTree', {
    extend: 'Ext.tree.Panel',
    alias: 'widget.mytree',

    id: 'MyTree',
    store: 'MyTreeStore',
    width: 350,
    height: 320,
    border: false,
    rootVisible: false,
    singleExpand: true
});


文章来源: extjs refresh tree store
标签: Extjs tree store