Скрытие a4j: outputPanel и отображение его на кнопке команды submit a4j - PullRequest
0 голосов
/ 04 июля 2010

Теперь у меня есть это:

.....
<a4j:commandButton  action="#{ChoixContratBean.Submit1}" reRender="suite" value="valider"  > </a4j:commandButton>
        </a4j:outputPanel>

    <a4j:outputPanel display="none" id="suite">
    <jsf:outputText id="reponseeFormule"............

, которое работает.панель набора перерисована.Но я хотел бы скрыть эту выходную панель с именем suite.и показать его, как только пользователь подтвердил с помощью команды кнопка ... Я не могу понять, как это сделать, у кого-нибудь есть идея?

1 Ответ

1 голос
/ 04 июля 2010

Хорошо, я наконец узнал через несколько часов.(Я отправил вопрос после нескольких часов поиска, я новичок в richfaces)

Это не очень сложно, но есть небольшая ловушка, в которую вы не хотите попасть. Окончательный код выглядит так:

     ......<a4j:outputPanel id="check">
    <richfaces:panel rendered="#{ChoixContratBean.essaiValid}">
    <jsf:outputText value="#{ChoixContratBean.check}" /></richfaces:panel>
        </a4j:outputPanel>                  
    </td>               
   </tr>                
 </table>
</richfaces:simpleTogglePanel> 
    <a4j:commandButton  action="#{ChoixContratBean.Submit1}" reRender="suite, check" value="valider"> </a4j:commandButton>  
        <a4j:outputPanel id="suite" >
<richfaces:simpleTogglePanel rendered="#{ChoixContratBean.suite}" switchType="ajax"......

Сначала должна быть визуализирована выходная панель = true, иначе ajax ее не коснется.Это была моя первая ошибка, я думал, что смогу сделать outputPanel render = "# {ChoixContrat.someBool} и изменить его в действии ajax, связанном с командной кнопкой. Но нет, если он сначала установлен rendered = false, ajax winВы не сможете изменить его на true, потому что в первую очередь он недоступен! Вы должны установить rendered = некоторый логический элемент в вашем заднем компоненте в компоненте, который содержит то, что вы хотите скрыть, и который находится в outputPanel id = suite какдля моего примера. Таким образом, outputPanel всегда отображается, но компонент в нем останется скрытым или видимым независимо от того, задан ли для вашего атрибута контрагента значение false или true сзади, в методе ajax.

надеюсь, я ясно, потому что я француз .....

...