Java 在adf中隐藏显示组件
我有3个不受数据控制的SelectOneChoice,这取决于第一个SelectOneChoice的值,其他2个SelectOneChoice应该显示和隐藏。 我在第一个SelectOneChoice中使用了manged bean和valueChangeListener来根据选择隐藏和显示其他2个SelectOneChoice,在其他2个SelectOneChoice中使用了partial,但它不起作用 这是第一个SelectOneChoiceJava 在adf中隐藏显示组件,java,oracle-adf,managed-bean,Java,Oracle Adf,Managed Bean,我有3个不受数据控制的SelectOneChoice,这取决于第一个SelectOneChoice的值,其他2个SelectOneChoice应该显示和隐藏。 我在第一个SelectOneChoice中使用了manged bean和valueChangeListener来根据选择隐藏和显示其他2个SelectOneChoice,在其他2个SelectOneChoice中使用了partial,但它不起作用 这是第一个SelectOneChoice <af:selectOneChoice la
<af:selectOneChoice label="acnt type" id="soc10" valueChangeListener="#{backingBeanScope.JasperBean.hideShowAccounts}"
autoSubmit="true" required="true" contentStyle="width:118px">
<af:selectItem label="Cultural Division Accounts" value="CA" id="si12"/>
<af:selectItem label="Students Accounts" value="SA" id="si13"/>
</af:selectOneChoice>
<af:selectOneChoice label="bb"
valueChangeListener="#{backingBeanScope.JasperBean.storeAccount}"
id="soc11" autoSubmit="true" partialTriggers="soc10">
<af:selectItem label="Select Account" value="-1" id="si220"/>
<f:selectItems value="#{backingBeanScope.JasperBean.accounts}" id="si1"/>
</af:selectOneChoice>
<af:selectOneChoice label="aa"
valueChangeListener="#{backingBeanScope.JasperBean.storeAccount}"
id="soc12" autoSubmit="true"
partialTriggers="soc10"
rendered="#{backingBeanScope.JasperBean.saShown}">
<af:selectItem label="Select Account" value="-1" id="si221"/>
<f:selectItems value="#{backingBeanScope.JasperBean.studentAccounts}" id="si121"/>
</af:selectOneChoice>
如果可以使用javascript完成,请告诉我如何在托管bean中完成,这不是必需的,有两步解决方案: 为selectOneChoice组件添加valuePassThru=true 添加valueChangeEvent.getComponent.processUpdatesFacesContext.getCurrentInstance;作为值中的第一行,更改侦听器代码
有关详细信息,请参阅是否尝试放置valueChangeEvent.getComponent.processUpdatesFacesContext.getCurrentInstance; 作为托管bean代码的第一行?此外,我在you page源代码中没有看到这两个LOV的绑定引用。
public void hideShowAccounts(ValueChangeEvent valueChangeEvent) {
if(valueChangeEvent.getNewValue().toString().equals("CA"))
{
ddlCAaccounts.setRendered(true);
ddlSAaccounts.setRendered(false);
}
else if(valueChangeEvent.getNewValue().toString().equals("SA"))
{
ddlCAaccounts.setRendered(false);
ddlSAaccounts.setRendered(true);
}
}