Ajuda <a4j:support>[Resolvido]

9 respostas
N

Pessoal estou tentando adicionar ajax em um componente <h:selectBooleanCheckbox> utilizando <a4j:support>, eu preciso apresentar certos campos caso o componente check esteja checado.

Estou fazendo da seguinte maneira

&lt;h:selectBooleanCheckbox value="#{usuarioHandler.usuario.ativo}" &gt;
             &lt;a4j:support event="onclick" reRender="label" /&gt;
&lt;/h:selectBooleanCheckbox&gt;

&lt;h:outputLabel value="teste" id="label" rendered="#{usuarioHandler.usuario.ativo}" /&gt;

O request é feito mas o componente não está sendo renderizado.

Grato

9 Respostas

G

Opa!
Tranquilo?

Cara, tenta renderizar o componente em que o output está contido, algo do tipo:
reRender=“painel”

<a4j:outputPanel id=“painel”>
<h:output>
</a4j:outputPanel>

Ou um form externo…
testa ae

[]'s

N

Então já testei isso antes mas também não funciona.
Já tentei colocar esses componentes dentro de um <a4j:form> mas também nada.

Valeu

[ ]'s

M

ao inves do onclick, tenta com o event=“onchange”. blz!

G

Eu não tenho certeza se o que você tentou foi o que eu falei, mas vou falar mesmo assim, porque vai que num foi e resolve… (JSF é cheio de problemas assim ^^)

tipo, o alvo do reRender não pode ser o que vai estar com o boolean nele
se você colocar o reRender apontando pro painel externo, e o boolean no output, não funciona?

Agora, se isso não funcionar também, podem ser outra coisa, seu bean está no request? se ele estiver, ele está mantendo o valor do boolean? Se não, um keepalive pode resolver…

Não tenho certeza, mas tinham alguns componentes em que o support do a4j tinham um problema, mas eu acho que já foi resolvido, mas você pode dar uma olhada no forum da JIRA pra confirmar…

N

Era isso mesmo gui.orioli, muito obrigado

[ ]'s

G

Opa, blz?

Então, resolveu o problema?
Se sim, coloca [Resolvido] no titulo do ticket e post um trecho de código com a solucão…
Se não, a gente pode continuar tentando ajudar…

[]'s

N

Para aqueles que possam enfrentar o mesmo problema vou postar um trecho do código com a solução, como sugeriu nosso amigo gui.orioli

&lt;h:panelGrid id="panelEstornoProducao" columns="8"&gt;
      				&lt;h:selectBooleanCheckbox value="#{usuarioHandler.funcionario.permite_estornar_producao}"&gt;
      					&lt;a4j:support ajaxSingle="true" event="onchange" reRender="panelEstornoProducao"/&gt;
      				&lt;/h:selectBooleanCheckbox&gt;
      				&lt;h:outputText value="Permite Estornar Etiquetas Producao" /&gt;
      				
      				&lt;rich:spacer width="50px" /&gt;
      				
      				&lt;h:panelGroup rendered="#{usuarioHandler.funcionario.permite_estornar_producao}"&gt;
      					&lt;h:outputText value="Leitor" /&gt;
      					&lt;h:selectBooleanCheckbox value="#{usuarioHandler.funcionario.estornar_producao_leitor}"/&gt;
      					&lt;rich:spacer width="30px" /&gt;
      					&lt;h:outputText value="Manual" /&gt;
      					&lt;h:selectBooleanCheckbox value="#{usuarioHandler.funcionario.estornar_producao_manual}"/&gt;
      				&lt;/h:panelGroup&gt;
      				
      			&lt;/h:panelGrid&gt;

Vale lembrar que para usar o componente <a4j:support> o mesmo precisa estar dentro de um componente <a4j:form>

[ ]'s

B

Cara,

desculpe reativar o post, mas testaste se isso está funcionando no IE?

Tenho uma situação semelhante em que o codigo roda beleza no Firefox mas no IE, não.

Aqui vai meu código:

&lt;s:decorate template="/layout/edit.xhtml" id="id1" rendered="#{manterLinhaNegocialBaseExternaController.permiteEdicao}"&gt;
            
       &lt;ui:define name="label"&gt;Linha subordinadora:&lt;/ui:define&gt;

       &lt;h:selectBooleanCheckbox
                          value="#{objLinhaNegocialBaseExternaSelecionado.indicadorBooleanoLinhaSubordinadora}" 
                         disabled="#{not manterLinhaNegocialBaseExternaController.permiteEdicao}" tabindex="2"  &gt;
							
              &lt;a4j:support event="onchange" reRender="idAreaLinhaSubordinadora" ajaxSingle="true" /&gt;
					
       &lt;/h:selectBooleanCheckbox&gt;
				
       &lt;h:outputText value="Sim" /&gt;
						                
&lt;/s:decorate&gt;

&lt;h:panelGroup id="idAreaLinhaSubordinadora" rendered="#{manterLinhaNegocialBaseExternaController.permiteEdicao}"&gt;
					            
                  &lt;s:decorate template="/layout/edit.xhtml" rendered="#{ (not objLinhaNegocialBaseExternaSelecionado.indicadorBooleanoLinhaSubordinadora) }"&gt;
	            
                           &lt;ui:define name="label"&gt;Linha subordinadora:&lt;/ui:define&gt;
	                
                                   &lt;h:selectOneMenu 	value="#{objLinhaNegocialBaseExternaSelecionado.objLinhaSubordinadora}" &gt;
										                        
                                         &lt;s:selectItems 	value="#{manterLinhaNegocialBaseExternaController.listaLinhasSubordinadoras}"  var="registro" 
                                                    label="#{registro.codigoLinha}#{' '}#{registro.nome}" 
                                                    noSelectionLabel="Selecione..."/&gt;
					    				
                                         &lt;s:convertEntity /&gt;      
					                                                            
                                   &lt;/h:selectOneMenu&gt;
					
                   &lt;/s:decorate&gt;
            
&lt;/h:panelGroup&gt;

Abrasssssss

B

Detalhe: já tentei mudar o event para onclick e nada.

Abrasssss

Criado 6 de agosto de 2008
Ultima resposta 26 de jan. de 2012
Respostas 9
Participantes 4