Я искал вопросы, связанные с ExtJS, и не нашел ссылок, но если я пропустил это, извините заранее, чтобы задать дублирующий вопрос.
Я хотел бы попросить некоторую помощь о том, как сделать сетку ExtJS 4: редактирование ячеек: функция автоматического редактирования - то, что я имею в виду, я хочу войти в режим редактирования ячейки, когда я нажимаю клавишу (например, 123 "в выделенной ячейке, текст заменяется (если есть) с" 123 "). В настоящий момент вход в режим редактирования ячейки можно сделать, нажав ENTER или щелкнув мышью.
В качестве базы я использую пример Sencha: http://dev.sencha.com/deploy/ext-4.0.2a/examples/grid/cell-editing.html
Любые советы, указатели будут благодарны.
Спасибо заранее!:)
На самом деле я частично решил проблему. Нашел способ сделать редактирование ячейки нажатием клавиши, поместить параметр selectOnFocus для выбора текста в ячейке, теперь мне нужно сначала вставить char (который инициировал режим редактирования) в ячейке.
Это может быть не самое красивое решение, но оно работает для меня:) Вот полный код до сих пор.
var tStore = 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 tCellEdit = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});
var tGrid = Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: tStore,
columns: [
{header: 'Name', dataIndex: 'name', field: 'textfield'},
{header: 'Email', dataIndex: 'email', flex:1,
editor: {
xtype:'textfield',
allowBlank:false,
selectOnFocus: true
}
},
{header: 'Phone', dataIndex: 'phone'}
],
selType: 'cellmodel',
plugins: [tCellEdit],
listeners: {
keypress: {
element: 'el',
fn: function(iEvent, iElement) {
iCode = iEvent.getKey();
if (iCode != undefined && iCode != iEvent.LEFT && iCode != iEvent.RIGHT && iCode != iEvent.UP && iCode != iEvent.DOWN && iCode != iEvent.ENTER && iCode != iEvent.ESC) {
var iView = tGrid.getView();
var position = iView.selModel.position;
tCellEdit.startEditByPosition(position);
}
}
}
},
height: 200,
width: 400,
renderTo: Ext.getBody()
});