我正在使用PrimeFaces的JSF 2.0。我使用两个<h:selectOneMenu>
组件来表示两个下拉列表,我有以下功能要求:
如果用户在第一个下拉列表中选择 Availibility Histogramme 或 Availibility line 选项,则应显示第二个下拉列表。
如果用户在第一个下拉列表中选择 Availibility 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>
答案 0 :(得分:0)
JSF2支持ajax,因此您可以将类似的内容附加到第一个selectBox
&lt; f:ajax event =“valueChange”rendered =“&lt;第二个选择框的ID&gt;”执行= “@这个”/&GT;
答案 1 :(得分:0)
(正如我们在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>
答案 2 :(得分:0)
http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=ajax&sample=selectsUpdates&skin=blueSky 您可以将#{not empty bean.availabilityDisplay}用于渲染属性