that's because you're mixing array store and jsonstore..
Here are two examples:
ARRAY STORE
Code:
var emptyData = [];
var data = [
[ "display1", "value1" ],
[ "display2", "value2" ]
];
var store = Ext.create('Ext.data.ArrayStore', {
storeId : 'theStore',
autoLoad : true,
//model : 'myModel',
//autoDestroy : true,
data : emptyData,
fields : [
'display',
'value'
]
});
Ext.create('Ext.container.Container', {
renderTo : Ext.getBody(),
width : 250,
padding : 10,
layout : {
type : 'vbox',
align : 'stretch'
},
items : [
{
xtype : 'combobox',
id : 'searchInput',
fieldLabel : 'Search:',
enableKeyEvents : true,
submitEmptyText : false,
emptyText : 'search...',
valueField : 'value',
displayField : 'display',
width : '100%',
store : store
},
{
xtype : 'button',
text : 'Add store',
handler : function() {
store.loadData(data, false);
}
}
]
});
JSON STORE
Code:
var emptyData = { "data" : []};
var data = {
"data" : [
{ "display" : "display1", "value" : "value1" },
{ "display" : "display2", "value" : "value2" }
]
};
var store = Ext.create('Ext.data.JsonStore', {
storeId : 'theStore',
autoLoad : true,
//model : 'myModel',
//autoDestroy : true,
data : emptyData,
root : 'data',
fields : ['display', 'value']
});
Ext.create('Ext.container.Container', {
renderTo : Ext.getBody(),
width : 250,
padding : 10,
layout : {
type : 'vbox',
align : 'stretch'
},
items : [
{
xtype : 'combobox',
id : 'searchInput',
fieldLabel : 'Search:',
enableKeyEvents : true,
submitEmptyText : false,
queryMode : 'local',
emptyText : 'search...',
valueField : 'value',
displayField : 'display',
width : '100%',
store : store
},
{
xtype : 'button',
text : 'Add store',
handler : function() {
store.loadData(data.data, false);
}
}
]
});