Каскадный динамический рендеринг selectOneMenu не работает - PullRequest
1 голос
/ 17 октября 2011

Моя проблема проста, но я не могу найти четкого решения.

У меня есть три selectOneMenu, и я хочу, чтобы первый отображался всегда, второй отображался, если у первого выбрано какое-то значение, а третий отображался, если у второго выбрано какое-то значение.

Соотношение между первым и вторым работает хорошо, но не работает между вторым и третьим.

Когда я изменяю значение для первого selectOneMenu, второе selectOneMenu отображается или скрывается правильно. Но когда я изменил значение для второго, ничего не случилось с третьим selectOneMenu, например, если рендер f: ajax не сработал.

Ниже код JSF:

<h:panelGrid columns="2">
    <h:outputText value="Type Paiement" />
      <h:selectOneMenu
            value="#{employeurBean.idTypePaiement}"> 
            <f:selectItem itemValue="" itemLabel="Choix typePaiement" />
            <f:selectItems value="#{typePaiementBean.typesPaiement}" var="vtp"
            itemLabel="#{vtp.libelle}" itemValue="#{vtp.idTypePaiement}" />
            <f:ajax event="change" render="gmodp" />
      </h:selectOneMenu>    
</h:panelGrid>

<h:panelGrid id="gmodp">
<h:panelGroup rendered="#{employeurBean.idTypePaiement == 2}">
    <h:outputText value="Mode Paiement" />
      <h:selectOneMenu
            value="#{employeurBean.idModePaiement}"> 
            <f:selectItem itemValue="" itemLabel="Choix mode Paiement" />
            <f:selectItems value="#{modePaiementBean.modesPaiement}" var="vmp"
            itemLabel="#{vmp.libelle}" itemValue="#{vmp.idModePaiement}" />
        <f:ajax event="change" render="grib"/>
    </h:selectOneMenu>
</h:panelGroup> 
</h:panelGrid>

<h:panelGrid id="grib">
<h:panelGroup rendered="#{employeurBean.idModePaiement == 1}">
    <h:outputText value="Compte" />
    <h:inputText value="#{employeurBean.compte}">
    </h:inputText>
</h:panelGroup>
</h:panelGrid> 

Есть ли идея достичь этого. Большое спасибо за вашу помощь

1 Ответ

1 голос
/ 17 октября 2011

Эта конструкция завершится ошибкой, если bean-компонент имеет область действия запроса и / или вы выполняете бизнес-действия (например, предварительную загрузку списка) в методах получения, а не в методах прослушивателя действий.Убедитесь, что компонент помещен в область просмотра, и что вы выполняете бизнес-действия в методах прослушивателя действий.

Если это не решит проблему, то вам действительно необходимо опубликовать код компонента поддержкипосмотреть код в вашем вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...