Dojo Datagrid всегда показывает устаревшие данные - PullRequest
2 голосов
/ 30 января 2012

Я использую Dojo Datagrid, подключенный к dojo.store.JsonRest через dojo.data.ObjectStore и dojo.store.Cache. Существует также Dojo.store.Memory, подключенный к хранилищу Cache.

Сетка данных редактируется с помощью раскрывающихся списков. При первом изменении значения кажется, что все идет хорошо, но если вы редактируете одну и ту же строку во второй раз, редактирование проходит к JsonRest и к серверу, но сама сетка возвращается к отображению старого значения.

Это известная ошибка? Есть идеи для обхода?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2012

Не видя ваш код, трудно сказать, почему изменения не сохраняются. Помните, что DataGrid полагается на единый интерфейс данных для записи изменений обратно в хранилище данных. После того как вы отредактировали ячейку, изменения записываются обратно с помощью метода setValue () адаптера данных Dojo; несохраненные изменения сохраняются в адаптере до тех пор, пока вы не вызовете метод save (): dataStore.save (); После вызова save () все изменения доставляются в хранилище объектов с помощью вызовов put (). Имейте в виду, что сетка просто отображает / отображает данные в магазине. Таким образом, редактирование ячеек в сетке не будет продолжаться до тех пор, пока изменения не будут сделаны постоянными в базовых хранилищах.

0 голосов
/ 01 февраля 2012

Вы можете создать строку обновления сетки после сохранения ваших данных на сервере.Обратный вызов может быть таким:


function onApplyCellEditHandler(inGrid, inValue, inRowIndex, inFieldIndex) {
    inGrid.yourStore.save();
    inGrid.updateRow(inRowIndex);
}

Надеюсь, это поможет

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