Локальное редактирование в сетке Ext - PullRequest
3 голосов
/ 17 марта 2011

Я использую Ext 'Ext.grid.EditorGridPanel, чтобы создать сетку, и использую хранилище массивов с локальными данными для заполнения строк в сетке. Когда я редактирую значения в сетке, они показывают маленький красный треугольник в верхнем левом углу, а также данные хранилища не обновляются.

Так как я могу редактировать локальные данные в EditorGridPanel?

Я вижу похожую проблему в Ext Пример сетки редактора , хотя в этом примере также задан URL-адрес, см. Изображение ниже.

enter image description here

Решение: Поскольку мне просто нужно было сохранить изменения локально, я просто сделал следующее.

settingsGrid.on('afteredit', function(evt){
settingsGrid.store.commitChanges()
})

Это устраняет проблему, и все отредактированные пользователем данные успешно обновляются в локальном хранилище.

Ответы [ 2 ]

5 голосов
/ 17 марта 2011

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

Если вам нужно сохранить изменения, вам придется отправить обновленные данные обратно на сервер. Вы можете использовать DataWriter для этого .. см. Этот пример !

Обновление: Если вы не планируете перемещать обновления на сервер, вы можете использовать:

  • getModifiedRecords () - получить все измененные записи.
  • commitChanges () - зафиксировать изменения.
  • rejectModifiedRecords () - отклонить все изменения в хранилище.

Эти методы являются операциями над хранилищем на стороне клиента. Я думаю, это то, что вы ищете.

1 голос
/ 17 марта 2011

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

Убедитесь, что в вашем ArrayStore не определено restful: true.Я бы также рекомендовал использовать свойство data вместо url, если вы хотите, чтобы все было локально.

...