我有一个类似下面的组合框
{
xtype:'combo',
fieldLabel:'Test',
store:['a','b']
}
在不创建Ext存储对象的情况下,我将数组分配给存储,并且显示的值很好。
在某些操作中,我想用['d','e']
更新商店我尝试过将新值分配给商店,如下所示
comboObje.store=['d','e'];
但它没有更新值。
如何使用商店中的新值替换原始值。
答案 0 :(得分:7)
您可以使用bindStore
创建新商店,或只使用loadData
将新数据加载到现有商店:
combo.store.loadData(['d', 'e'].map(function(item){ return [item]; }));
答案 1 :(得分:2)
在版本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']);
}
});
答案 2 :(得分:1)
试试这个:
comboObje.getStore().loadData([{'field1': 'd'}, {'field1': 'e'}]);
将数组分配给'存储'配置,ExtJS自动生成字段名称。