@bernex

Как вы сохраняете вложенные таблицы в окне? Кто как делает?

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

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

Но как их изменения сохранять?

1 Вариант
Мы сохраняем данные полей в основном гриде по нажатию кнопки сохранить.
Два внутренних грида сохраняем сразу после редактирования через autoSync=true.

+ Все легко делается и быстро
- Если нажать "отмена", то сохраненные данные во внутренних гридах останутся измененными, это очень плохо.

2 Вариант
Мы сохраняем данные полей в основном гриде по нажатию кнопки сохранить.
Два внутренних грида сохраняем тоже после нажатия сохранить.
Делаем это через паралельные запросы или последовательность(Promises) и осознаем результат успеха или нет.

+ Сложнее и дольше
- Если часть запросов не сохранится или валидация не пройдет, то часть останется уже сохраненной. Их надо откатывать? Пользователь может решить закрыть окно и подумать что ничего не будет сохранено.

3 Вариант
Мы сохраняем данные полей в основном гриде по нажатию кнопки сохранить.
Два внутренних грида загружаем из подзаписи основного грида и сохраняем тоже через поле основного грида.
Сохраняется одним запросом, сервер работает с данными нескольких гридов сам.

+ Сложнее сервер
- Не явная и сложная CRUD архитектура вложенные CRUD таблиц(для внутренних таблиц надо делать removed, modified, created ключи и передавать измененные данные для batch изменений).

Как делаете вы? Какие сложности и решения были получены с опытом?
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы