抑制古巴平台中未保存的更改消息
Suppress unsaved changes message in Cuba Platform
我有一个包含作者的查找屏幕,我通过使用来自 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()
方法,其中 return 是一个布尔值。
AbstractEditor
已经实现了这个接口,它的 isModified()
看起来如下:
@Override
public boolean isModified() {
return getDsContext() != null && getDsContext().isModified();
}
您可以在浏览器屏幕中实现 Window.Committable
并且只是 return false 或在 isModified()
中编写一些逻辑。
我有一个包含作者的查找屏幕,我通过使用来自 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()
方法,其中 return 是一个布尔值。
AbstractEditor
已经实现了这个接口,它的 isModified()
看起来如下:
@Override
public boolean isModified() {
return getDsContext() != null && getDsContext().isModified();
}
您可以在浏览器屏幕中实现 Window.Committable
并且只是 return false 或在 isModified()
中编写一些逻辑。