在我的应用程序中,当我尝试编辑文本框单元格并按向上箭头或向下箭头时,它会自动递增或递减单元格的值。预期行为:当我编辑一个单元格并更改值并按向上或向下箭头时,它的行为应该像我按下回车键一样,应该向上或向下移动到一个单元格。我们是否有任何关键字,我可以调试代码,看看是什么使值递增或递减。先谢了。
5f0d552i1#
你可以使用***beforecellkeydown***事件来更新逻辑!请检查下面的例子!希望这对你有帮助!
Ext.create('Ext.grid.Panel', { renderTo: Ext.getBody(), width: 400, height: 200, title: 'Editable Grid Example', store: { fields: ['name', 'age'], data: [{ name: 'John', age: 25 }, { name: 'Jane', age: 30 }, { name: 'Mike', age: 28 }] }, columns: [{ text: 'Name', dataIndex: 'name', flex: 1, editor: 'textfield' }, { text: 'Age', dataIndex: 'age', editor: { xtype: 'numberfield', keyNavEnabled: false, } }], plugins: { ptype: 'cellediting', clicksToEdit: 1, id: 'celledit' }, listeners: { beforecellkeydown: function (grid, td, cellIndex, record, tr, rowIndex, event, eOpts) { if (event.getKey() === event.UP || event.getKey() === event.DOWN) { var editingPlugin = this.getPlugin('celledit'); if (editingPlugin.editing) { event.stopEvent(); var targetRow = event.getKey() === event.UP ? rowIndex - 1 : rowIndex + 1; if (targetRow >= 0 && targetRow < grid.getStore().getCount()) { var targetCell = this.getView().getCellByPosition({ row: targetRow, column: cellIndex }); if (targetCell) { var originalValue = record.get(this.columns[cellIndex].dataIndex); var currentValue = editingPlugin.getActiveEditor().getValue(); if (originalValue !== currentValue) { editingPlugin.completeEdit(); // Complete the current edit editingPlugin.startEditByPosition({ row: targetRow, column: cellIndex }); } } } } } } } });
1条答案
按热度按时间5f0d552i1#
你可以使用***beforecellkeydown***事件来更新逻辑!请检查下面的例子!希望这对你有帮助!