Pergunta

esperando que alguém pode me ajudar com um ligeiro obstáculo que eu vim acima contra no que diz respeito à re-renderização de componentes RichFaces após uma ligação a4j / botão realizou a sua ação. Uma versão simplificada do meu problema é o seguinte:

Eu tenho 2 componentes de saída exibindo um valor de texto que são prestados com base em algum valor na minha classe manager:

<h:outputText id="on" value="ON" rendered="#{manager.isOn}" />

<h:outputText id="off" value="OFF" rendered="#{not manager.isOn}" />

Eu também tenho 2 links a4j que exigem alguma ação e, em seguida, re-tornar o acima componentes outputText:

<a4j:commandLink ajaxSingle="true" value="Set On" action="#{manager.setOn(true)}" reRender="on,off" />

<a4j:commandLink ajaxSingle="true" value="Set Off" action="#{manager.setOn(false)}" reRender="on,off" />

O que eu esperaria acontecer é, quando eu clico no botão 'Set On', o componente outputText 'ON' iria mostrá, ea 'componente OFF outputText iria mostrar. No entanto, isso não acontece.

Alguém tem a resposta de por que isso é assim, e como eu vou sobre re-renderização estes componentes após a ação componente a4j completou?

Foi útil?

Solução

Enrole os componentes outputText em um s:div e re-tornar essa a seguinte:

<s:div id="myDiv">
    <h:outputText id="on" value="ON" rendered="#{manager.isOn}" />

    <h:outputText id="off" value="OFF" rendered="#{not manager.isOn}" />
</s:div>

<a4j:commandLink ajaxSingle="true" value="Set On"
   action="#{manager.setOn(true)}" reRender="myDiv" />

<a4j:commandLink ajaxSingle="true" value="Set Off"
   action="#{manager.setOn(false)}" reRender="myDiv" />

Outras dicas

Eu concordo com Gene mas a melhor maneira que eu poderia encontrar é cercar o conteúdo com

<a4j:outputpanel id="whatever_id" />

Por exemplo,

<a4j:outputpanel id="myDiv">
    <h:outputText id="on" value="ON" rendered="#{manager.isOn}" />
    <h:outputText id="off" value="OFF" rendered="#{not manager.isOn}" />
</a4j:outputpanel>

Você rerender o pai. Ele não tem que ser um tag Seam.

Suponho que a sua h:. OutputText elementos em e off não são processados ??em tempo de carregamento da página

RichFaces não vai renderizados estes componentes mais tarde, mesmo que o valor de prestados alterado para true .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top