根据selectOneRadio上选择的内容,reRender panelGroup或region

时间:2011-05-30 17:41:02

标签: java jsf ajax4jsf

这基本上是这个问题: JSF 2.0 How to display a different h:panelGroup each time an item is selected from a selectOneMenu

但是我正在使用selectOneRadio而且我没有f:ajax,答案说它修复了。 知道我可以做些什么来重新审视我的panelGroups?

我尝试过a4j:支持但没有成功。它看起来像是reRender,但没有任何变化。也许我做错了什么。所以,我在selectOneRadio上放了一个onclick =“submit()”并且它可以工作,但它会再次加载整个页面。

<h:selectOneRadio value="#{myBean.selectedItem}" >
 <a4j:support event="onclick" reRender="regionSomeItem,regionAnotherItem" />
 <div class="cssClass">
  <f:selectItem itemValue="someItem" itemLabel="Some Item"/>
 </div>
 <div class="cssClass">
  <f:selectItem itemValue="anotherItem" itemLabel="Another Item"/>
 </div>
 <div class="clear"></div>
</h:selectOneRadio>

<a4j:region id="regionSomeItem" rendered="#{condition for some item}"/>

<a4j:region id="regionAnotherItem" rendered="#{condition for another item}"/>

1 个答案:

答案 0 :(得分:2)

您需要在a4j:region之外创建一个没有标记的组。它似乎与标记reRender发生冲突,试图重新启用它。

<h:selectOneRadio value="#{myBean.selectedItem}" >
 <a4j:support event="onclick" reRender="allItemsInOneGroup" />
</h:selectOneRadio>

<h:panelGroup id="allItemsInOneGroup">

<a4j:region rendered="#{condition for some item}">
</a4j:region>

<a4j:region rendered="#{condition for another item}">
</a4j:region>

</h:panelGroup>