【问题标题】:Eclipse Scout Neon Delete empty row dot trigger saveEclipse Scout Neon 删除空行点触发器保存
【发布时间】:2016-07-28 03:50:45
【问题描述】:

在一种形式中,我有系统确定按钮:

@Order(910.0)
public class SaveButton extends AbstractOkButton {

  @Override
  protected String getConfiguredLabel() {

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

我有 tableField ...

如果我在这个表中添加新的空行 execStore 在按下保存按钮时被调用,但是如果我删除这个空行并按下保存按钮什么都不会被调用,按钮只会关闭表单。

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

编辑:

我发现所有仅填写智能字段的行在删除时都不会检测到更改。 (不仅是空行...)

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

【问题讨论】:

    标签: save delete-row eclipse-scout


    【解决方案1】:

    你如何添加你的行?

    您可以将该行标记为已插入或未插入。见: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 来说不是新的)。

    【讨论】:

    • 我如何插入行我认为没关系,因为我添加单元格单击保存,再次编辑相同的表单,删除行,保存,但是这个保存不会调用 execStore。我知道我可以覆盖 execIsSaveNeeded(),但不应该表处理它自己删除行吗?我的 hack 是当我删除行时我调用 touch();,但我不喜欢这样。
    • 到目前为止,我可以使用 M6 对其进行测试,一切正常。我已经更新了我的帖子。
    • 我已将 getConfiguredAutoDiscardOnDelete 设置为 true。但我们目前使用 M5
    • 表格代码是旧的,M6 没有什么新东西...(您可以从 wiki 中的旧文档中看到)
    猜你喜欢
    • 2023-03-18
    • 2016-07-27
    • 2016-06-29
    • 2016-04-24
    • 1970-01-01
    • 2016-07-16
    • 2016-10-09
    • 2016-09-22
    • 2016-07-08
    相关资源
    最近更新 更多