如何改变Ext js动态存储数据

How to change Ext js store data dynamically

本文关键字:js 动态 存储 数据 Ext 何改变 改变      更新时间:2023-09-26

我有一个像下面这样的组合框

{
  xtype:'combo',
  fieldLabel:'Test',
  store:['a','b']
}

在没有创建Ext存储对象的情况下,我将数组分配给存储,并且它可以很好地显示值。

在某些操作中,我想用['d','e']更新存储

我已经尝试通过分配新的值来存储像下面

comboObje.store=['d','e'];

但是没有更新值

如何用存储中的新值替换原始值

您可以使用bindStore创建新存储,也可以使用loadData将新数据加载到现有存储:

combo.store.loadData(['d', 'e'].map(function(item){ return [item]; }));

工作示例:https://fiddle.sencha.com/#fiddle/tb1

在版本5。*及以上级别可以使用:

comboObje.setStore(['d','e']);

这在以前的版本中不起作用。

将以下代码粘贴到Sencha Fiddle中作为"概念验证":

Ext.application({
    name : 'Fiddle',
    launch : function() {
        var panel = Ext.create('Ext.form.Panel', {
            title: 'test',
            items: [{
                xtype:'combo',
                fieldLabel:'Test',
                store:['a','b']
            }],
            renderTo: Ext.getBody()
        });
        panel.down('combo').setStore(['d','e']);
    }
});

试试这个:

comboObje.getStore().loadData([{'field1': 'd'}, {'field1': 'e'}]);

当你分配一个数组给'store' config时,ExtJS会自动生成字段名。