Применение внешних изменений к dxDatagrid в режиме пакетного редактирования

У меня есть сетка данных, настроенная на режим пакетного редактирования. Когда я отправляю какой-либо запрос на свой сервер, он отвечает вычисленными новыми значениями, которые я хотел бы применить к своей сетке данных с функциями режима пакетного редактирования (зеленая рамка вокруг ячейки, включена кнопка «Сохранить изменения»). Мне удалось заставить его работать, просматривая сетку и обновляя ячейки с помощью gridInstance.cellValue(...), чтобы получить желаемое поведение. Прямо сейчас он хорошо работает с короткими выборками данных, которые помещаются на одной странице, но у меня возникают проблемы, когда выборка достаточно велика, чтобы потребовать несколько страниц (на каждой странице отображается только 10 элементов). Я думал о том, чтобы просмотреть каждую страницу сетки, чтобы просмотреть ее строки, но мне это кажется немного грязным, и я беспокоюсь о производительности.

Более хорошим способом было бы просматривать источник данных вместо сетки данных и добавлять некоторый флаг к строкам, которые необходимо обновить, а затем обновлять/перекрашивать сетку данных. Как я могу этого добиться? Или, если мы не можем использовать флаги или что-то подобное, как правильно обновить всю сетку независимо от количества страниц?


person Carrm    schedule 12.12.2018    source источник


Ответы (1)


Ответ службы поддержки DevExpress:

Такое поведение является известным ограничением наших компонентов. Метод cellValue предназначен для изменения только видимых строк. Мы собираемся обновить нашу документацию, чтобы сделать ее более понятной. В качестве возможного подхода вы можете обновлять строки через слой источника данных, используя метод обновления. Между тем, поскольку вы используете режим пакетного редактирования, я хочу отметить, что при использовании метода обновления строки будут изменены без возможности отмены изменений. Мы собираемся исследовать, можем ли мы улучшить функциональность DataGrid для этого сценария в следующих версиях.

На данный момент похоже, что единственным решением является использование метода обновления и потеря функции «отмены» пакетного редактирования или просмотр страниц с расширением cellValue.

person Carrm    schedule 13.12.2018