Здравствуйте. Мы переносим старый сайт на cuba/jmix
как можно в пивотгрид вместо ячеек поставить текстбоксы или спиннеры. Что бы пользователь
сделал все модификаций мышкой и один раз нажал на кнопку Сохранить! Будем очень признательны за помощь!
Добрый день.
К сожалению, используемая в PivotTable компоненте JavaScript библиотека не поддерживает редактирование данных.
Глеб
Спасибо за ответ. А нельзя ваадином сделать такое?
Тут количестов колонок относительно маленькое (около 5-6) и строк тож
То же самое для DataGrid. 10 на 10 гриде надо отобразить 100 textfield-ов. Можно такое сделать?
Для Вашей задачи должен подойти компонент Table с включенным редактированием, см документацию и демо.
Посмотрел пример. Вижу что изменения не сохраняются в базе. Поэтому добавил кнопку для сохранения. Простые сохранения работают. А если подключить транзакционно и кинуть исключение то данные все равно коммитятся. Поскажите правильный ли данный подход?
@Subscribe("customersTable.greeting") @Transactional public void onCustomersTableGreeting(Action.ActionPerformedEvent event) { Collection items = customersTable.getItems().getItems(); for (Customer item : items) { dataManager.commit(item); } throw new RuntimeException("fail"); }
Если предполагается, что данные в экране просмотра должны редактироваться, то необходимо:
- Убрать свойство
readOnly="true"
с элементаdata
в дескрипторе экрана. - Для сохранения данных использовать
dataContext.commit()
@Autowired
private DataContext dataContext;
@Subscribe("saveBtn")
public void onSaveBtnClick(Button.ClickEvent event) {
dataContext.commit();
}