Combobox 在SelectOneChoice中禁用selectItem

Combobox 在SelectOneChoice中禁用selectItem,combobox,oracle-adf,Combobox,Oracle Adf,嘿,伙计们,我正在尝试一些全新的东西,用ADF实现GUI。这是我的第一次ADF体验,我真的不知道如何做这样的事情: 我有几个SelectOneChoice让我们称它们为组合框,从1到6,有一些selectItems让我们称它们为选项:空白、慢速、中等、快速 现在,我必须确保如果我在组合框1上选择-Blank。所有其他选项都有4个可用选项 然后我将进入组合框2-中等。在本例中,从3到6的combobox的值不能快,因为它不能比上面的combobox快 这同样适用于所有其他组合框,如果选择了慢速,则

嘿,伙计们,我正在尝试一些全新的东西,用ADF实现GUI。这是我的第一次ADF体验,我真的不知道如何做这样的事情:

我有几个SelectOneChoice让我们称它们为组合框,从1到6,有一些selectItems让我们称它们为选项:空白、慢速、中等、快速

现在,我必须确保如果我在组合框1上选择-Blank。所有其他选项都有4个可用选项

然后我将进入组合框2-中等。在本例中,从3到6的combobox的值不能快,因为它不能比上面的combobox快

这同样适用于所有其他组合框,如果选择了慢速,则下面的所有组合必须只有慢速或空白选项

我该怎么做

以下是我尝试过的:

af:selectOneChoice id="soc2"
binding="#{backingBeanScope.backing_Setup.soc2}"
autoSubmit="true"                                                                                                  

    valueChangeListener="#{backingBeanScope.backing_Setup.disableLowerLevelsA}">
<af:selectItem
id="si48"
binding="#{backingBeanScope.backing_Setup.si48}"/>
<af:selectItem label="Slow"
value="slow" id="si3"                                                                                                      binding="#{backingBeanScope.backing_Setup.si3}"/>                                                                                      <af:selectItem label="Medium"                                                                                                       value="medium"                                                                                                       id="si5"                                                                                                       binding="#{backingBeanScope.backing_Setup.si5}"/>                                                                                       <af:selectItem label="Fast"                                                                                                      value="fast" id="si4"
binding="#{backingBeanScope.backing_Setup.si4}"/>
</af:selectOneChoice>
<af:selectOneChoice id="soc5"
binding="#{backingBeanScope.backing_Setup.soc5}"
partialTriggers="soc2">
<af:selectItem                                                                                                       id="si49"                                                                                                      binding="#{backingBeanScope.backing_Setup.si49}"/>                                                                                       <af:selectItem label="Slow"                                                                                                       value="slow"                                                                                                      id="si12"                                                                                                      binding="#{backingBeanScope.backing_Setup.si12}"/>                                                                                       <af:selectItem label="Medium"                                                                                                      value="medium"                                                                                                      id="si14"               

                                                                                    binding="#{backingBeanScope.backing_Setup.si14}"/>                                                                                        <af:selectItem label="Fast"                                                                                                       value="fast"                                                                                                       id="si13"                                                                                                       binding="#{backingBeanScope.backing_Setup.si13}"/>                                                                                 </af:selectOneChoice>
等等。。。我已经将触发器和侦听器添加到各自的组合中。但是,当我更改第一个组合框(即:Medium)的内容时,另一个组合框将保持所有选项可见。
如何解决此问题?

在第一个SelectOneChoice的valueChangeListener中,以编程方式获取第二个SelectOneChoice的Viewcriteria,并确保将第一个SelectOneChoice的ID列not selected值作为绑定变量发送。 还设置viewcriteria以接受此绑定变量,并执行小于或等于的查询,假设ID按升序排序

//To get VC and execute it
    ViewObjectImpl vo = getEmployeesView();
    ViewCriteria vc = vo.getViewCriteria("findEmployeeVC");
    vo.applyViewCriteria(vc);
    vo.setNamedWhereClauseParam("pEmployeeId", employeeId);
    vo.executeQuery();
在选择第一个SelectOneChoice后,不要忘记PPR第二个SelectOneChoice以刷新LOV