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).

Другие вопросы по тегам