我有一个selectOneMenu,显示一些不同的东西类别:
<h:selectOneMenu value="#{searchController.selectedCategory}">
<f:selectItems value="#{searchController.formatedCategories()}" >
</f:selectItems>
</h:selectOneMenu>
我需要根据所选类别显示不同的panelGroup。
示例(选择第一个项目时,需要显示该项目)
<h:panelGroup id="carInfo">
<h:outputText value="marka" />
<h:selectOneMenu>
<f:selectItems value="#{searchController.formatedCarMarks()}" />
</h:selectOneMenu>
<h:outputText value="godina" />
<h:selectOneMenu>
<f:selectItems value="#{searchController.formatedYearFrom()}" />
</h:selectOneMenu>
<h:selectOneMenu>
<f:selectItems value="#{searchController.formatedYearTo()}" />
</h:selectOneMenu>
<h:outputText value="kms.:" />
<h:selectOneMenu>
<f:selectItems value="#{searchController.kmsFrom()}" />
</h:selectOneMenu>
<h:selectOneMenu>
<f:selectItems value="#{searchController.kmsTo()}" />
</h:selectOneMenu>
</h:panelGroup>
我不知道该怎么做,因为我需要在不刷新页面的情况下进行操作。
有任何想法吗? Ajax可以在这里帮助我吗?如果可以的话,有人可以告诉我如何?我一点都不熟悉。
最佳答案
这可以通过ajax轻松完成:
将<h:panelGroup>
元素放入外部<h:panelGroup>
将<f:ajax>
嵌套在<h:selectOneMenu>
内,并将外部<h:panelGroup>
的ID放入其render
属性中。
为每个内部<h:panelGroup>
元素提供一个rendered
属性,该属性仅在选择了相应类别时才为true。