当用户更改页面上的任何值(文本框/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。我根本不喜欢这个选项。请建议是否有更好的方法来处理这种情况。