我有一个带有作者的查找屏幕,我使用来自 AuthorsBrowse::AbstractLookup 的 init 中的自定义查询加载数据。我操作了要显示的数据,但不应保存更改。
如果我关闭选项卡,我会收到此消息对话框:
您有未保存的更改 要放弃未保存的更改吗?
如何抑制此消息?
我有一个带有作者的查找屏幕,我使用来自 AuthorsBrowse::AbstractLookup 的 init 中的自定义查询加载数据。我操作了要显示的数据,但不应保存更改。
如果我关闭选项卡,我会收到此消息对话框:
您有未保存的更改 要放弃未保存的更改吗?
如何抑制此消息?
如果更改了任何数据源,则会出现此消息。
如果要抑制消息,则需要添加到数据源(已更改)属性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>
Window.Committable
如果屏幕实现接口,您还可以对屏幕的未保存更改行为实现更细粒度的控制。该接口包含isModified()
返回布尔值的方法。
AbstractEditor
已经实现了这个接口,它的isModified()
外观如下:
@Override
public boolean isModified() {
return getDsContext() != null && getDsContext().isModified();
}
您可以Window.Committable
在浏览器屏幕中实现并返回 false 或在isModified()
.