Функция EXTJS + startEditByPosition не генерирует событие фокуса при перемещении в другую строку - PullRequest
1 голос
/ 15 марта 2012

Я новичок в EXTJS. Пожалуйста, помогите мне с проблемой ниже. У меня есть cellEditingPlugin с моделью выбора в качестве редактирования ячейки на панели сетки. Я пытаюсь поймать событие специального ключа в редакторе для клавиш со стрелками и соответственно изменить редактируемую ячейку. Я использую функцию startEditByPosition для достижения этой цели. Это работает, когда я перемещаюсь влево и вправо в одном и том же, но когда я перемещаюсь в строку выше / ниже, ячейка в строке выше / ниже теряет режим редактирования. Я пытался поймать событие фокуса в редакторе, но событие фокуса не возникает в случае, когда я перемещаю другие строки. Пожалуйста, помогите мне. Ниже приведен фрагмент кода. Я использую версию 4.0.

function specialkeyfunction(obj,e)// event handler
{
console.log("special key event");
var grid = Ext.getCmp('gridItems');
var code = e.getCharCode ();
var rowSelected = grid.view.getSelectionModel().getCurrentPosition().row;
var colSelected = grid.view.getSelectionModel().getCurrentPosition().column;
     if (code == "37")
     {
     if(colSelected>1)
     grid.plugins[0].startEditByPosition({row:rowSelected,column:colSelected-1}); 
     }
     else if (code == "39")
     {
     if(colSelected<(maxColumns-1))
     grid.plugins[0].startEditByPosition({row:rowSelected,column:colSelected+1});
     }
     else if (code == "38")
     {
     if(rowSelected>0)
     grid.plugins[0].startEditByPosition({row:rowSelected-1,column:colSelected});
     }
     else if (code == "40")
     {
     if(rowSelected<(maxRows-1))
     grid.plugins[0].startEditByPosition({row:rowSelected+1,column:colSelected});
     }
     else 
     {
     } 
 }

1 Ответ

0 голосов
/ 28 января 2013

это сработало для меня grid.plugins[0].startEditByPosition({'row':9,'column':0});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...