Eclipse Scout Neon Удалить триггер сохранения пустой строки
В одной форме у меня есть кнопка ОК системы:
@Order(910.0)
public class SaveButton extends AbstractOkButton {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Save");
}
}
а у меня есть tableField ...
Если я добавлю новую пустую строку в этой таблице execStore
вызывается при нажатии кнопки сохранения, но если я удаляю эту пустую строку и нажимаю кнопку сохранения, ничего не вызывается, кнопка только закрывает форму.
Как это решить? Я хотел бы иметь возможность удалить пустую строку.
РЕДАКТИРОВАТЬ:
Я выяснил, что все строки, где заполнены только умные поля, при удалении не обнаруживают изменений. (не только пустые строки...)
Проблема в том, что checkSaveNeeded
формы вернуть, что ничего не изменилось в doOk
метод.
1 ответ
Как вы добавляете свою строку?
Вы можете отметить строку как вставленную или нет. Увидеть: addRow(newRow, markAsInserted);
на столе.
Ваш второй вопрос: "Как вычисляется поле таблицы, нужно ли сохранять форму или нет"?
Вы можете реализовать свою собственную логику с помощью execIsSaveNeeded()
, Смотрите этот вопрос на скаутском форуме: https://www.eclipse.org/forums/index.php?t=msg&th=477037&goto=1042295
Ваш последний пункт: когда строка имеет статус ITableHolder.STATUS_NON_CHANGED
в редактируемой таблице. Когда значение в SmartColumn
изменяется с SmartField
статус строки не изменяется на ITableHolder.STATUS_UPDATED
,
Я только что проверил это, и он работает, как ожидалось.
Для удаления строки это зависит от того, как настроено поле таблицы. Какова стоимость имущества isAutoDiscardOnDelete()
,
Документ здесь все еще действителен с Neon: Таблица> Удалить строку из таблицы
С isAutoDiscardOnDelete()
возврате true
(это тот случай, если getConfiguredAutoDiscardOnDelete()
возвращается true
), когда вы удаляете строку в поле таблицы, она отбрасывается. Сохранять нечего, потому что в поле таблицы нет удаленной строки (все объясняется в упомянутом выше разделе вики)
Если вы хотите сохранить удаление на сервере, вы не должны удалять строку, а просто удалить ее. Таким образом, вы получаете информацию в FormData, и оттуда вы можете работать со статусом строки, как описано здесь: TableData (снова старый документ из нашей вики, потому что он работает так уже много лет. Это не ново для Neon).