繁体   English   中英

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

[英]How to change Ext js store data dynamically

我有一个看起来像下面的组合框

{
  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'配置时,ExtJS会自动生成字段名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM