如何动态更改 Ext js 存储数据
How to change Ext js store data dynamically
我有一个如下所示的组合框
{
xtype:'combo',
fieldLabel:'Test',
store:['a','b']
}
在没有创建 Ext 存储对象的情况下,我正在分配要存储的数组,它显示的值很好。
在某些操作中,我想用 ['d'、'e']
更新商店
我试过像下面这样分配新值来存储
comboObje.store=['d','e'];
但它没有更新值。
如何用商店中的新值替换原始值。
在版本 5.* 和更高版本中,您可以使用:
comboObje.setStore(['d','e']);
这在以前的版本中不起作用。
将以下代码粘贴到 Sencha Fiddle 作为 'proof-of-concept':
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']);
}
});
您可以使用 bindStore
创建新商店,或者使用 loadData
将新数据加载到现有商店:
combo.store.loadData(['d', 'e'].map(function(item){ return [item]; }));
试试这个:
comboObje.getStore().loadData([{'field1': 'd'}, {'field1': 'e'}]);
当您将数组分配给 'store' 配置时,ExtJS 会自动生成字段名称。
我有一个如下所示的组合框
{
xtype:'combo',
fieldLabel:'Test',
store:['a','b']
}
在没有创建 Ext 存储对象的情况下,我正在分配要存储的数组,它显示的值很好。
在某些操作中,我想用 ['d'、'e']
更新商店我试过像下面这样分配新值来存储
comboObje.store=['d','e'];
但它没有更新值。
如何用商店中的新值替换原始值。
在版本 5.* 和更高版本中,您可以使用:
comboObje.setStore(['d','e']);
这在以前的版本中不起作用。
将以下代码粘贴到 Sencha Fiddle 作为 'proof-of-concept':
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']);
}
});
您可以使用 bindStore
创建新商店,或者使用 loadData
将新数据加载到现有商店:
combo.store.loadData(['d', 'e'].map(function(item){ return [item]; }));
试试这个:
comboObje.getStore().loadData([{'field1': 'd'}, {'field1': 'e'}]);
当您将数组分配给 'store' 配置时,ExtJS 会自动生成字段名称。