我使用页面片段创建视图,在同一页面中我有两种表单来查看/更新特定信息。
我想知道是否可以根据对方是否处于可更新模式禁用一个表单(或按钮,因为它是我从可读方式更改为可更新方式的方式)。 / p>
简化我有形式A和B,两者都在可读的同一页面中。当我选择A进行更新时,我希望B禁用编辑选项,直到A返回到读取模式,并且与B形式相同。
任何人都可以帮助我吗?
---更新
流
一个
乙
在每个片段(视图)中,我有一个按钮,作为片段的动作(编辑)
我需要的是在按下A按钮时禁用B.view中的按钮,反之亦然
答案 0 :(得分:0)
如果表单是单独任务流的一部分,并且这些任务流在页面上用作区域,那么您将需要启用区域间通信,以便一个区域中的操作可以影响其他区域的数据和行为:
http://www.oracle.com/technetwork/developer-tools/adf/adfregioninteraction-155145.html
对于您的用例,上下文事件可以达到目的:
http://rohanwalia.blogspot.com/2013/07/contextual-events-basic-step-by-step.html http://www.awasthiashish.com/2013/05/using-contextual-event-in-oracle-adf.html https://blogs.oracle.com/raghuyadav/entry/refresh_bounded_taskflows_acro
要实施您的案例,请按照上面提供的教程进行以下更改:
在事件的customPayLoad中传递一个布尔值
<event name="DisableButtonEvent" customPayLoad="${'true'}"/>
在事件处理程序方法中,将payLoad值分配给范围变量:
public void handleDisableButtonEvent(String payLoad) {
AdfFacesContext adfFacesContext = AdfFacesContext.getCurrentInstance();
Map pageFlowScope = adfFacesContext.getPageFlowScope();
pageFlowScope.put("disableButton", payLoad);
}
将范围变量用于第二个区域上按钮的禁用属性
<af:commandButton text="EditButoonB" id="cb1"
disabled="#{pageFlowScope.disableButton ne null? pageFlowScope.disableButton : false}"/>