在 SelectOneChoice 中禁用 selectItem
Disable selectItem in SelectOneChoice
大家好,我正在尝试使用 ADF 在 GUI 方面对我来说是全新的东西。这是我的第一次 ADF 体验,我真的不知道如何做这样的事情:
我有几个 SelectOneChoice(我们称它们为 1 到 6 的组合框)和一些 selectItems(我们称它们为选项:空白、慢速、中速、快速)
现在,我必须确保如果我在组合框 1 上选择 - 空白。所有其他人都有 4 个选项可用。
然后我将进入组合框 2 - 中。在这种情况下,从 3 到 6 的组合框不能具有 Fast 值,因为它不能比组合框 "above".
快
所有其他组合框也是如此,如果选择 "Slow" 那么所有组合 "below" 必须只有选项 "Slow" 或 "Blank"。
我该怎么做?
这是我尝试过的方法:
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>
等等...我已将触发器和侦听器添加到相应的组合中。但是,当我更改第一个组合框(即:中等)的内容时,另一个保持所有选项可见。
我该如何解决这个问题?
在第一个 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。
大家好,我正在尝试使用 ADF 在 GUI 方面对我来说是全新的东西。这是我的第一次 ADF 体验,我真的不知道如何做这样的事情:
我有几个 SelectOneChoice(我们称它们为 1 到 6 的组合框)和一些 selectItems(我们称它们为选项:空白、慢速、中速、快速)
现在,我必须确保如果我在组合框 1 上选择 - 空白。所有其他人都有 4 个选项可用。
然后我将进入组合框 2 - 中。在这种情况下,从 3 到 6 的组合框不能具有 Fast 值,因为它不能比组合框 "above".
快所有其他组合框也是如此,如果选择 "Slow" 那么所有组合 "below" 必须只有选项 "Slow" 或 "Blank"。
我该怎么做?
这是我尝试过的方法:
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>
等等...我已将触发器和侦听器添加到相应的组合中。但是,当我更改第一个组合框(即:中等)的内容时,另一个保持所有选项可见。 我该如何解决这个问题?
在第一个 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。