Событие rowdeselect не может запускаться для сохранения данных, когда они находятся в последней строке в Extjs EditorGridPanel

Я использую EditorGridPanel с редактором ячеек, который действует почти как Excel. Мы внедрили клавиши со стрелками для перемещения между строками и столбцами. Мы выполняем проверку строки, когда пользователь переходит из одной строки в другую (в частности, в событии rowdeselect), а затем сохраняем запись. Есть некоторые проблемы:

  1. Для последней строки сетки событие rowdeselect не срабатывает, так как у нас нет другого элемента управления после сетки.

  2. Событие rowdeselect срабатывает, если мы переходим от строки к строке, используя клавиши Tab, Enter и стрелки. Но когда пользователь нажимает на другую строку с помощью мыши - события не приходят в правильной последовательности, поэтому фокус перемещается на новую строку, но предыдущая строка не сохраняется. В настоящее время мы решили эту проблему, вызвав stopEditing в начале события rowdeselect.

Мы хотели бы знать, как мы можем решить эти две проблемы и есть ли более надежные способы автоматического сохранения сетки.

Вы можете заполнить бесплатно, чтобы проверить проблему на нашем сайте. -> http://www.softworksbd.com/swazilandlmis/yyyy_stockdata.php


person Anwar Hossain    schedule 20.12.2011    source источник


Ответы (1)


1) Во-первых, событие не срабатывает при размытии всей сетки, а не только последней строки. попробуйте изменить строку и щелкнуть в любом месте экрана, кроме сетки, и вы увидите, что проверка не выполняется (что означает, что ваш rowdselect не срабатывает). Вы должны попытаться добавить синее событие во всю сетку, которая запускает ваши сценарии проверки.

2) Насколько я проверил, событие запускается даже при щелчке другой строки, поэтому, пожалуйста, объясните, что именно вы имеете в виду...

ps

Я просмотрел только эту страницу в вашем приложении: введите здесь описание изображения

person AMember    schedule 21.12.2011
comment
Предположим, мое верное уравнение: Открытие+Получение+НастройкаКоличества-Закрытие=ВыдачаКоличества. Если я вставлю 0+1200+0-1000=200 и нажму клавишу Enter, он будет сохранен, а грязный флаг исчезнет. Но когда этот вход находится в последней строке сетки, и я нажимаю кнопку «Ввод», он не сработает, а также, если я нажму на любой элемент управления за пределами сетки, это событие также не сработает. - person Anwar Hossain; 22.12.2011
comment
Вы пробовали событие 'selectionchange' в модуле выбора? - person AMember; 22.12.2011