我有一段jspx代码,我想在其中有条件地渲染(使其可见(一个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">
有谁知道为什么这种行为很普遍?
您尝试执行的操作需要部分刷新才能渲染/取消渲染元素。
下面是示例:
<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