ComboBoxIssue
by Antonio Paternina
HTML
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<link rel="stylesheet" href="http://dev.sencha.com/deploy/ext-4.0.2a/resources/css/ext-all.css">
JavaScript
Ext.define('NS.model.State', {
extend: 'Ext.data.Model',
fields: [{
name: 'id',
type: 'int'
}, {
name: 'name',
type: 'string'
}]
});
Ext.define('NS.store.State', {
extend: 'Ext.data.Store',
model: 'NS.model.State',
data: [{
"id": 1,
"name": "Alabama"
}, {
"id": 2,
"name": "Alaska"
}, {
"id": 3,
"name": "Arizona"
}]
});
Ext.define('NS.model.Person', {
extend: 'Ext.data.Model',
fields: [{
name: 'id',
type: 'int'
}, {
name: 'firstName',
type: 'string'
}, {
name: 'state',
type: 'NS.model.State'
}]
});
Ext.define('NS.store.Grid', {
extend: 'Ext.data.Store',
model: 'NS.model.Person',
data: {
'items': [{
'id': 1,
"firstName": "Lisa",
"state": null
}, {
'id': 2,
"firstName": "Bart",
"state": null
}, {
'id': 3,
"firstName": "Homer",
"state": null
}, {
'id': 4,
"firstName": "Marge",
"state": null
}]
},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
});
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.create('NS.store.Grid'),
columns: [{
header: 'First Name',
dataIndex: 'firstName',
flex: 1,
editor: 'textfield'
}, {
header: 'State',
dataIndex: 'state',
flex: 1,
editor: {
xtype: 'combobox',
store: Ext.create('NS.store.State'),
queryMode: 'local',
displayField: 'name',
valueField: 'id'
}
}],
selType: 'cellmodel',
plugins: [{
ptype: 'cellediting',
clicksToEdit: 2
}],
height: 150,
width: 200,
renderTo: Ext.getBody()
});