嘿伙计们,我用ADF在GUI上尝试一些全新的东西。这是我的第一次ADF体验,我真的不知道如何做这样的事情:
我有几个SelectOneChoice(让他们从1到6称它们为组合框)和一些selectItems(让他们称之为选项:空白,慢,中,快)
现在,我必须确保如果我选择组合框1 - 空白。所有其他人都有4种选择。
然后我将踩到组合框2 - 中等。在这种情况下,3到6的组合框不能具有快速值,因为它不能比组合框更快"以上#34;
所有其他组合框也是如此,如果"慢"然后选择所有组合"下面"必须只有选项"慢"或"空白"。
我该怎么做?
这是我尝试过的:
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>
等等......我已经将触发器和监听器添加到相应的组合中。但是当我改变第一个组合框的内容时(即:中),另一个保持所有选项可见。 我该如何解决这个问题?
答案 0 :(得分:0)
在第一个SelectOneChoice的valueChangeListener中,以编程方式获取第二个SelectOneChoice的Viewcriteria,并确保将第一个SelectOneChoice的ID列(非选定值)作为绑定变量发送。
同时将viewcriteria设置为接受此绑定变量,并使用less than or equal to
执行查询,假设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。