ADF部分页面呈现

时间:2018-06-05 09:11:27

标签: oracle-adf

我有一段jspx代码,我想在检查selectBooleanCheckbox时有条件地渲染(使其可见)selectOneRadio组件。第一次选中复选框时,selectOneRadio会被渲染。但是当我取消选中时,单选按钮不会被隐藏。

我在复选框代码中有一个valueChangeListener来执行此渲染。但是当取消选中复选框时,这个监听器不会被触发。

<af:selectBooleanCheckbox 
    id="sbc2"                                                                        
    text="#{viewcontrollerBundle.CB_TYPE_VIDEO_CHAT}"                                                                           
    selected="#{row.videoChatEnabled}"                                                                          
    disabled="#{row.videoChatEnabled}"                                                                                                                                                           
    valueChangeListener="#{pageFlowScope.servicesbean.ValueChangeListener}"                                                                          
    binding="#{pageFlowScope.servicesbean.videoChatBinding}"
    autoSubmit="true"                                                                   
/>

<af:selectOneRadio 
    id="videoDirection2"
    visible="false"
    value="#{bindings.videoDirection.inputValue}"
    contentStyle="margin-left:0px"                                                                    
    immediate="true">

有谁知道为什么这种行为很普遍?

1 个答案:

答案 0 :(得分:1)

您要做的事情需要部分刷新以渲染​​/取消渲染元素。

以下是样本:

          <af:panelGroup partialTriggers="checkid">
            <af:commandButton text="moo" rendered="#{backing_1.check.value}"
                              partialTriggers="checkid"/>
          </af:panelGroup>
          <af:selectBooleanCheckbox text="selectBooleanCheckbox 1"
                                    label="Label 1"
                                    binding="#{backing_1.check}" id="checkid"
                                    autoSubmit="true"/>

上面的示例根据复选框显示/隐藏按钮。请注意,按钮包含在面板中以帮助部分刷新。

参考:https://community.oracle.com/thread/629222?start=0&tstart=0