我有一段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">
有谁知道为什么这种行为很普遍?
答案 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