Extjs Событие обновления магазина запущено до поздна - PullRequest
1 голос
/ 27 декабря 2011

У меня есть ситуация, когда я использую EditorGrid на панели окна.

На панели окна есть кнопка сохранения на нижней панели инструментов.

В одном сценарии пользователь редактирует сеткуи когда закончите, нажмите кнопку сохранения, не теряя фокус из сетки до нажатия кнопки.

Я заметил, что в IE событие подбородка запускается иначе, чем в FF или Chrome.

Событие обновления магазина запускается после того, как пользователь нажимает кнопку «Сохранить», и в результате магазин не отражает последние изменения в сетках.

Я зарегистрировал события в инструментах разработчика IE и FF:

IE: ВРЕМЯ ЛИНИИ СОБЫТИЙ

LOG: orderGrid1-beforeedit

LOG: store-update

LOG: orderGrid1-afteredit

LOG: orderGrid1-beforeedit

LOG: store-update

LOG: orderGrid1-afteredit

LOG: orderGrid1-beforeedit

LOG: saveButton-click

LOG: магазин-обновление - УВЕДОМЛЕНИЕ, ЧТО ЭТО OCCURRED ПОСЛЕ НАЖМИТЕЛЯ СОБЫТИЯ !!!

LOG: orderGrid1-afteredit

FF: ВРЕМЯ ЛИНИИ СОБЫТИЙ

orderGrid1-beforeedit

store-update

orderGrid1-afteredit

orderGrid1-beforeedit

store-update

orderGrid1-afteredit

orderGrid1-beforeedit

store-update

orderGrid1-afteredit

orderGrid1-beforeedit

saveButton-mouseover

store-update - УВЕДОМЛЕНИЕ ОБ ЭТОМ СОБЫТИИRES перед событием щелчка кнопки

orderGrid1-afteredit

parseStoreToOrderLines

saveButton-click

Пожалуйста, ПОМОГИТЕ !!!:)

Ответы [ 2 ]

2 голосов
/ 27 декабря 2011

Это происходит, вероятно, потому что события редактирования запускаются в течение тайм-аута, в то время как событие щелчка срабатывает напрямую или имеет более высокий приоритет в IE. Возможное решение для проверки: установите задержку для кнопки сохранения (вероятно, даже 1 мс будет достаточно). Если это не поможет, вы всегда можете отключить кнопку сохранения после события beforeedit и включить его после события afteredit.

0 голосов
/ 28 декабря 2011

вероятно, потому что нажатие на кнопку не приводит к тому, что отредактированная ячейка сразу теряет фокус.

попробуйте вызвать endEdit () в обработчике нажатия кнопки, чтобы обойти эту проблему.

...