AlexanderP Posted July 11, 2025 Posted July 11, 2025 Добрый день! Sherzod у меня стоит задача сделать чтобы с помощь кнопок вверх или вниз в режиме редакции перемещаться на строку вверх или вниз Я нашел код который частично это делать с помощью Enter, т.е. перемещает только на нижнюю строку Я модернизировал код под свою задачу, работает хорошо но заметил что при перемещении на строку, к примеру вниз, фокус остается на той строке с которой начал Что делаю, выбираю строку нажимаю Enter, далее перемещаюсь с помощью кнопки вниз, после опять нажимаю Enter, чтобы выйти из редакции, а фокус остался на том месте откуда начал перемещение. Хочется чтобы фокус появлялся на новой строке, что я сделал не так ? function reconfigure(sender, store, columns, oldStore, oldColumns, eOpts) { var grid = sender; for (var i = 0; i < columns.length; i++) { if (columns[i].getEditor()) { columns[i].getEditor().on('specialkey', function(field, e) { if (e.getKey() == e.UP || e.getKey() == e.DOWN) { e.stopEvent(); var store = grid.getStore(); var selModel = grid.getSelectionModel(); var selectedRecord = selModel.getLastSelected(); var recordIndex = store.indexOf(selectedRecord); if (e.getKey() == e.UP) recordIndex = recordIndex - 1; else recordIndex = recordIndex + 1; var nextRecord = store.getAt(recordIndex); if (nextRecord) { selModel.select(nextRecord); if (grid.editingPlugin && grid.uniRow && grid.uniCol) { var _row = grid.uniRow; var _col = grid.uniCol; setTimeout(function() { grid.editingPlugin.startEdit(_row, _col); }, 10); } } } }) } } } версия uni-1.95.0.1603 Видео-11-07-2025 140254.mp4 Quote
Sherzod Posted July 11, 2025 Posted July 11, 2025 Добрый день @AlexanderP Вам также следует задействовать navigationModel, чтобы правильно обновлялся фокус при переходе. Quote
AlexanderP Posted July 11, 2025 Author Posted July 11, 2025 1 minute ago, Sherzod said: Добрый день @AlexanderP Вам также следует задействовать navigationModel, чтобы правильно обновлялся фокус при переходе. Хорошо, попробую разобраться Quote
AlexanderP Posted July 11, 2025 Author Posted July 11, 2025 2 hours ago, AlexanderP said: Хорошо, попробую разобраться Sherzod спасибо за наводку, вроде как получилось, добавил выделенную строку а если закомментировать setTimeout, то это когда нужно выйти из редакции, если переходим на новую строку function reconfigure(sender, store, columns, oldStore, oldColumns, eOpts) { var grid = sender; for (var i = 0; i < columns.length; i++) { if (columns[i].getEditor()) { columns[i].getEditor().on('specialkey', function(field, e) { if (e.getKey() == e.UP || e.getKey() == e.DOWN) { e.stopEvent(); var store = grid.getStore(); var selModel = grid.getSelectionModel(); var selectedRecord = selModel.getLastSelected(); var recordIndex = store.indexOf(selectedRecord); if (e.getKey() == e.UP) recordIndex = recordIndex - 1; else recordIndex = recordIndex + 1; var nextRecord = store.getAt(recordIndex); if (nextRecord) { selModel.select(nextRecord); if (grid.editingPlugin && grid.uniRow && grid.uniCol) { var _row = grid.uniRow; var _col = grid.uniCol; setTimeout(function() { grid.editingPlugin.startEdit(_row, _col); }, 10); sender.getView().getNavigationModel().setPosition(_row, _col); } } } }) } } } Quote
AlexanderP Posted July 11, 2025 Author Posted July 11, 2025 5 minutes ago, Sherzod said: Получилось? да, работает Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.