如何根据第一个h:selectOneMenu显示第二个h:selectOneMenu



我使用带有PrimeFaces的JSF 2.0。我使用两个<h:selectOneMenu>组件来表示两个下拉菜单,我有以下功能需求:

  • 如果用户在第一个下拉菜单中选择了可用性直方图可用性行选项,则第二个下拉菜单应该显示出来。

  • 否则如果用户在第一个下拉菜单中选择了 availability Percentage,则第二个下拉菜单应该被隐藏

我该怎么做呢?

这是目前为止我的视图的相关片段:

<h:selectOneMenu value="#{bean.availabilityDisplay}" id="Display">
    <f:selectItem itemLabel="-- Select Display-- " itemValue="0"/> 
    <f:selectItems value="#{bean.getMyListDisplays()}"/>
</h:selectOneMenu>
<h:selectOneMenu value="#{bean.frequency}" id="frequency">
    <f:selectItem itemLabel="-- Select Frequency-- " itemValue="0"/> 
    <f:selectItems  value="#{bean.getMyListFrequency()}"/>
</h:selectOneMenu>

JSF2支持ajax,因此您可以将类似的内容附加到第一个selectBox

" execute="@this"/>

(正如我们在PrimeFaces论坛上讨论的那样)

在输出面板中包装第二个项目:

<h:selectOneMenu value="#{bean.availabilityDisplay}" id="Display">
    <f:selectItem itemLabel="-- Select Display-- " itemValue="0"/> 
    <f:selectItems value="#{bean.myListDisplays}"/>
    <f:ajax render="ajaxTarget" />
</h:selectOneMenu>
<p:outputPanel id="ajaxTarget">
    <h:selectOneMenu 
            value="#{bean.frequency}" id="frequency" 
            rendered="#{bean.availabilityDisplay == 2 or bean.availabilityDisplay == 4}">
        <f:selectItem itemLabel="-- Select Frequency-- " itemValue="0"/> 
        <f:selectItems  value="#{bean.myListFrequency}"/>
    </h:selectOneMenu>
</p:outputPanel>

http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=ajax&sample=selectsUpdates&skin=blueSky您可以使用#{not empty bean。

相关内容

  • 没有找到相关文章

最新更新