PrimeFaces commandButton

4 respostas
alves.Felipe
Olá, Estou usando primefaces mobile (0.9.2 - jsf2) e estou tendo um problema meio estranho, tenho uma view, que serve para adicionar os ítens do pedido, com 2 botões , adicionar e salvar. Quando eu clico no adicionar, funciona certinho, mas quando eu clico no salvar acontece o seguinte: 1º executa o método de adicionar (que é chamado no bt adicionar) e somente depois vai para o método salvar.. e se eu clico novamente no salvar, ai sim vai direto para o salvar... alguém tem alguma idéia de onde eu posso estar vacilando?
...
 <div class="field-input">
							 	<p:commandButton action="#{pedidoMobileBean.adicionaProduto()}" id="pcbAdicionar" value="Adicionar" update="hpgItens hpgTotais hpgTipoBonificacao"  icon="plus" iconPos="left" ></p:commandButton>				               
			                </div>
			               <div class="label-input">
		                </div>
		                <div class="field-input" >
		                	<p:commandLink id="pclVoltar3" styleClass="bt-mobile" value="Voltar" action="pm:view1" immediate="true"/>		                	
		                </div>
		                <div class="label-input"></div>
						 <div class="field-input">
		                <p:commandButton action="#{pedidoMobileBean.salvar()}" ajax="true" id="pcbSalvar" value="Salvar" update="hpgPedidoV3 :Form:hpgPedidoV1" ></p:commandButton>
		                
		                </div>...

4 Respostas

rodrigoromero.lima

Indique dentro do p:commandButton oque vc está processando com process = " ", se deixar default ele vai processar tudo que está dentro do fomulário.

alves.Felipe

não entendi, eu vou ter que colocar todos os campos do meu form no botão salvar?

rodrigoromero.lima

Você pode colocar tudo que vc quer processar dentro de um componente, um h:panelGrid ou h:panelGroup e indica-los no process no botão…

<p:commandButton process = “gridAdicionar” action="#{pedidoMobileBean.adicionaProduto()}" id=“pcbAdicionar” value=“Adicionar” update=“hpgItens hpgTotais hpgTipoBonificacao” icon=“plus” iconPos=“left” />

<p:commandButton process = “gridSalvar” action="#{pedidoMobileBean.salvar()}" ajax=“true” id=“pcbSalvar” value=“Salvar” update=“hpgPedidoV3 :Form:hpgPedidoV1” />

tbém tem esses parametros para o process e update: @all toda a pagina, @form tudo que estiver dentro do formulário e @ this o próprio componente, não sei se esqueci mais algum.

alves.Felipe

cara, eu coloquei o @this, funcionou, mas não sei seseria o mais correto…
vou fazer mais testes, e der algum erro vou criar os panel como vc falou deixando de fora apenas o bt adicionar…
valeu

Criado 30 de janeiro de 2013
Ultima resposta 30 de jan. de 2013
Respostas 4
Participantes 2