Eclipse Scout Neon删除空行点触发器保存

时间:2016-04-07 10:18:42

标签: save delete-row eclipse-scout

在一种形式中我有系统OK按钮:

@Order(910.0)
public class SaveButton extends AbstractOkButton {

  @Override
  protected String getConfiguredLabel() {

    return TEXTS.get("Save");
  }
}

我有tableField ...

如果我在此表中添加新的空行,则在按下保存按钮时调用execStore,但是如果我删除此空行并按下保存按钮,则不会调用任何内容,仅按钮关闭表单。

如何解决这个问题?我希望能够删除空行。

编辑:

我弄清楚所有只填写智能字段的行,在删除时它不会检测到更改。 (不仅是空行...)

问题是表单的checkSaveNeeded返回doOk方法中没有任何更改。

1 个答案:

答案 0 :(得分:0)

如何添加行?

您可以将行标记为是否已插入。请参阅表格中的addRow(newRow, markAsInserted);

你的第二个问题是“表格字段如何计算表格是否需要存储”?

您可以使用execIsSaveNeeded()实现自定义逻辑。在Scout论坛上看到这个问题: https://www.eclipse.org/forums/index.php?t=msg&th=477037&goto=1042295#msg_1042295

您的最后一点是:当一行在可编辑表格中具有状态ITableHolder.STATUS_NON_CHANGED时。使用SmartColumn更改SmartField中的值时,该行的状态不会更改为ITableHolder.STATUS_UPDATED

我刚试过它,它按预期工作。

对于行删除,它取决于您的表字段的配置方式。属性isAutoDiscardOnDelete()的价值是多少。

此处的文档仍适用于Neon:Table > Delete a row from the table

isAutoDiscardOnDelete()返回true(如果getConfiguredAutoDiscardOnDelete()返回true就是这种情况),当您删除表字段中的行时,它将被丢弃。没有什么可以保存的,因为表格字段中没有删除的行(在我提到的wiki部分中解释了所有内容)

如果要在服务器上持久删除,则不应使用丢弃该行但只删除它。通过这种方式,您可以获取FormData中的信息,然后您可以使用此处所述的行状态:TableData(同样来自我们wiki的旧文档,因为它可以像今年一样工作。这对于Neon来说并不新鲜)。