0

当用户更改页面上的任何值(文本框/LOV)并错误地关闭选项卡/取消按钮时,我需要显示自定义弹出警告消息。

我尝试过的选项是:

a) 在应用程序中,我们为 7 个不同的场景使用复杂的任务流/RegionModel。还要求显示自定义消息 - 因此无法使用“未保存数据警告”方法

http://www.oracle.com/technetwork/developer-tools/adf/unsaveddatawarning-100139.html

b)我尝试的第二个选项是自定义区域控制器:CustomRegionController implements RegionController

在 validateRegion(RegionContext regionContext) 内部想查找页面数据是否脏

     AdfFacesContext.getCurrentInstance().getDirtyPageHandler().isDataDirty();

或者

    DCBindingContainer dcBindings = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
    DCDataControl cDataControl = dcBindings.getDataControl();
    boolean dirtyFlag = cDataControl.isTransactionModified();

在这两种情况下,它始终为真(似乎是由于在页面加载时呈现数据时,一组常见的 VO/View Link 应用程序模块总是变脏)。

我剩下的最后一个选项是为每个元素(textbaox、LOV、复选框)调用 valueChangeListener。我根本不喜欢这个选项。请建议是否有更好的方法来处理这种情况。

4

1 回答 1

0

为什么使用值更改侦听器会出现问题?让每个输入组件在支持 bean 中调用相同的 VCL 方法。如有必要,您可以从 vcl 事件对象中获取组件 ID。

于 2012-05-16T11:45:21.487 回答