celleditor listens 'enter' click
http://stackoverflow.com/questions/9273094/extjs-take-cellediting-plugin-from-editor-listeners
HTML
<link rel="stylesheet" href="http://dev.sencha.com/deploy/ext-4.0.7-gpl/resources/css/ext-all.css">
JavaScript
Ext.create('Ext.data.Store', {
storeId: 'simpsonsStore',
fields: ['name', 'email', 'phone'],
data: {
'items': [
{
'name': 'Lisa',
"email": "[email protected]",
"phone": "555-111-1224"},
{
'name': 'Bart',
"email": "[email protected]",
"phone": "555-222-1234"},
{
'name': 'Homer',
"email": "[email protected]",
"phone": "555-222-1244"},
{
'name': 'Marge',
"email": "[email protected]",
"phone": "555-222-1254"}
]
},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
});
var grid = Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
id: 'sheetproductionrestin',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
columns: [
{
header: 'Name',
dataIndex: 'name',
editor: {
xtype: 'textfield',
listeners: {
cellclick: function(field, e) {
if (e.getKey() == e.ENTER) {
var grid = Ext.getCmp('sheetproductionrestin');
var store = Ext.getCmp('sheetproductionrestin').store;
var selModel = grid.getSelectionModel();
var selectedRecord = selModel.getLastSelected();
var recordIndex = store.indexOf(selectedRecord);
var nextRecord = store.getAt(recordIndex + 1);
selModel.select(nextRecord);
var plugin = grid.getPlugin('cellplugin');
plugin.startEdit(nextRecord,grid.columns[0]);
}
}
}
}},
{
header: 'Email',
dataIndex: 'email',
flex: 1},
{
header: 'Phone',
dataIndex: 'phone'}
],
...