2

我有一个带有作者的查找屏幕,我使用来自 AuthorsBrowse::AbstractLookup 的 init 中的自定义查询加载数据。我操作了要显示的数据,但不应保存更改。

如果我关闭选项卡,我会收到此消息对话框:

您有未保存的更改 要放弃未保存的更改吗?

如何抑制此消息?

4

2 回答 2

4

如果更改了任何数据源,则会出现此消息。

如果要抑制消息,则需要添加到数据源(已更改)属性allowCommit="false",如下所示:

<collectionDatasource id="authorsDs"
                      class="com.haulmont.workshop.core.entity.Author"
                      view="_local"  allowCommit="false">
    <query>
        <![CDATA[
        select e from ws$Author e where e.status = 10
        ]]>
    </query>
</collectionDatasource>
于 2016-05-27T07:22:59.067 回答
3

Window.Committable如果屏幕实现接口,您还可以对屏幕的未保存更改行为实现更细粒度的控制。该接口包含isModified()返回布尔值的方法。

AbstractEditor已经实现了这个接口,它的isModified()外观如下:

@Override
public boolean isModified() {
    return getDsContext() != null && getDsContext().isModified();
}

您可以Window.Committable在浏览器屏幕中实现并返回 false 或在isModified().

于 2016-06-20T10:44:27.270 回答