повторно назначить панель группы или региона в зависимости от того, что выбрано на selectOneRadio - PullRequest
0 голосов
/ 30 мая 2011

В основном это вопрос: JSF 2.0 Как отображать разные h: panelGroup каждый раз, когда элемент выбирается из selectOneMenu

Но я использую selectOneRadio, и я неимейте f: ajax, что ответы говорят, что это исправляет.Любая идея о том, что я мог бы сделать, чтобы изменить мои группы Panel?

Я пробовал с a4j: поддержка, но безуспешно.Похоже, что это будет reRender, но ничего не меняется.Может быть, я делаю что-то не так.Итак, я поместил onclick = "submit ()" в selectOneRadio, и он сработал, но он снова загружает всю страницу.

<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 Ответ

2 голосов
/ 30 мая 2011

Вам нужно создать группу за пределами региона a4j: без отображаемых тегов.Кажется, он конфликтует с тегом 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>
...