2017-02-08 6 views
1

В ExtJS 4.2 У меня есть сетка с записями с удаленной нагрузкой. Я выбираю строку в сетке и обновляю ее в базе данных. Я обновляю запись в базе данных и перезагружаю хранилище с помощью store.load(). После этого я могу приостановить работу в отладчике и проверить хранилище, и он действительно имеет правильные значения. Та же самая запись по-прежнему сохраняется, но следующий код:Выбор сетки Extjs после того, как store.load имеет неверные данные

var selectedRecords = grid.getSelectionModel().getSelection(); 

Не получает обновленные записи. Если я отменим выбор и повторно сделаю выбор, запись будет обновлена, но при этом все еще не будут сохранены старые значения. Есть ли способ обновить его.

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

+0

Я верю, что у ext js 4.2 есть эта ошибка .. вам нужно снять выделение и выбрать –

ответ

1

Кажется, что ошибка связана с моделью выбора. Смешанная коллекция 'selected' не обновляется как Ext.selection.Model расширяет Ext.util.Observable и будет обновляться только тогда, когда произойдет какое-то событие, связанное с выбором сетки. Если вы не хотите, чтобы снять выделение, а затем выберите вручную, или даже зарегистрировать обратный вызов на магазине нагрузки, попробуйте выполнить следующие действия в качестве временного решения,

var selectionArr = grid.selModel.selected; selectionArr.replace(selectionArr.keys[0],grid.getStore().getById(selectionArr.keys[0]));

Теперь попробуйте,

var selectedRecords = grid.selModel.getSelection(); 

В случае, если работа хорошо.

+0

@tgreen: Отметьте это как ответ, если он работает на вас. – inQstvJS

+0

Спасибо! Это отличное решение. – tgreen

+0

Вот код, я использовал: 'activeGridpanel.store.addListener ('нагрузки', функция (магазин) { вар selectionArr = activeGridpanel.selModel.selected; selectionArr.keys.forEach (функция (ключ) { selectionArr. заменить (key, store.getById (ключ)) }) }) ' – tgreen

0

Попробуйте обновить хранилище сетки после обновления значения.

Ext.getCmp('myGridID').getView().refresh() 
+0

Обновить изображение не решит проблему. –

+0

Да, я пробовал это, и он не работал. Я думаю, что Сурья может быть прав – tgreen

Смежные вопросы