PrimeFaces: Remover registro no dataTable

27 respostas
W

Olá galera!
Estou querendo remover um registro de um <p:dataTabe /> com um diálogo de confirmação, porém ao clicar no botão para confirmar a remoção aparece o seguinte erro na console:

19/09/2012 17:00:37 javax.faces.event.MethodExpressionActionListener processAction
SEVERE: 'java.lang.IllegalArgumentException' recebido ao invocar escuta de ação '#{consultaMilitarBean.excluir}' para o componente 'confirm'
19/09/2012 17:00:37 javax.faces.event.MethodExpressionActionListener processAction
SEVERE: java.lang.IllegalArgumentException: attempt to create delete event with null entity
	at org.hibernate.event.spi.DeleteEvent.<init>(DeleteEvent.java:45)
	at org.hibernate.internal.SessionImpl.delete(SessionImpl.java:921)
	at br.org.siscoweb.repository.infra.MilitaresHibernate.remover(MilitaresHibernate.java:31)
	at br.org.siscoweb.service.GestaoMilitares.excluir(GestaoMilitares.java:20)
	at br.org.siscoweb.view.ConsultaMilitarBean.excluir(ConsultaMilitarBean.java:36)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:264)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:153)
	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
	at javax.faces.component.UICommand.broadcast(UICommand.java:300)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at br.org.siscoweb.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:29)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:679)

19/09/2012 17:00:37 com.sun.faces.context.AjaxExceptionHandlerImpl log
SEVERE: JSF1073: javax.faces.event.AbortProcessingException obtido durante o processamento de INVOKE_APPLICATION 5: UIComponent-ClientId=form:confirm, Message=java.lang.IllegalArgumentException: attempt to create delete event with null entity
19/09/2012 17:00:37 com.sun.faces.context.AjaxExceptionHandlerImpl log
SEVERE: java.lang.IllegalArgumentException: attempt to create delete event with null entity
javax.faces.event.AbortProcessingException: java.lang.IllegalArgumentException: attempt to create delete event with null entity
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:182)
	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
	at javax.faces.component.UICommand.broadcast(UICommand.java:300)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at br.org.siscoweb.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:29)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.IllegalArgumentException: attempt to create delete event with null entity
	at org.hibernate.event.spi.DeleteEvent.<init>(DeleteEvent.java:45)
	at org.hibernate.internal.SessionImpl.delete(SessionImpl.java:921)
	at br.org.siscoweb.repository.infra.MilitaresHibernate.remover(MilitaresHibernate.java:31)
	at br.org.siscoweb.service.GestaoMilitares.excluir(GestaoMilitares.java:20)
	at br.org.siscoweb.view.ConsultaMilitarBean.excluir(ConsultaMilitarBean.java:36)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:264)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:153)
	... 31 more

O botão para excluir está assim:

<p:commandButton onclick="confirmation.show()" icon="ui-icon-trash">
						<f:setPropertyActionListener
							target="#{consultaMilitarBean.selectedMilitar}"
							value="#{militar}" />
</p:commandButton>

O diálogo de confirmação está assim:

<p:confirmDialog id="confirmDialog" message="Deseja excluir?"
				header="Excluir militar" severity="alert" widgetVar="confirmation">

				<p:commandButton id="confirm" value="Sim" update="form"
					oncomplete="confirmation.hide()"
					actionListener="#{consultaMilitarBean.excluir}" />
				<p:commandButton id="decline" value="Não"
					onclick="confirmation.hide()" type="button" />
</p:confirmDialog>

O cabeçalho do dataTable:

<p:dataTable var="militar" value="#{consultaMilitarBean.militares}"
			 paginator="true" rows="20" id="dataMilitar"
				emptyMessage="Lista vazia"
				paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}">

E o método para excluir no manegedBean:

public void excluir() {
		GestaoMilitares gestaoMilitares = new GestaoMilitares(
				this.repositorios.getMilitares());
		try {
			gestaoMilitares.excluir(selectedMilitar);

			this.inicializar();

			FacesUtil.adicionarMensagem(FacesMessage.SEVERITY_INFO,
					"Registro excluído com sucesso!");
		} catch (RegraNegocioException e) {
			FacesUtil.adicionarMensagem(FacesMessage.SEVERITY_ERROR,
					e.getMessage());
		}
	}

Quando eu estava usando os componentes padrões do JSF2 não tive problema algum, depois que coloquei os componentes do PrimeFaces começaram os problemas.

Alguém pode me ajudar?

27 Respostas

R

tente trocar de actionListener para action.

podem haver problemas em usar actionListener juntamente com setPropertyActionListener.

W

digaoneves:
tente trocar de actionListener para action.

podem haver problemas em usar actionListener juntamente com setPropertyActionListener.

Desta forma também não funcionou.

Apareceu o erro:

20/09/2012 15:13:40 com.sun.faces.lifecycle.InvokeApplicationPhase execute
WARNING: #{consultaMilitarBean.excluir}: java.lang.IllegalArgumentException: attempt to create delete event with null entity
javax.faces.FacesException: #{consultaMilitarBean.excluir}: java.lang.IllegalArgumentException: attempt to create delete event with null entity
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:117)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at br.org.siscoweb.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:29)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:679)
Caused by: javax.faces.el.EvaluationException: java.lang.IllegalArgumentException: attempt to create delete event with null entity
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:101)
	... 29 more
Caused by: java.lang.IllegalArgumentException: attempt to create delete event with null entity
	at org.hibernate.event.spi.DeleteEvent.<init>(DeleteEvent.java:45)
	at org.hibernate.internal.SessionImpl.delete(SessionImpl.java:921)
	at br.org.siscoweb.repository.infra.MilitaresHibernate.remover(MilitaresHibernate.java:31)
	at br.org.siscoweb.service.GestaoMilitares.excluir(GestaoMilitares.java:20)
	at br.org.siscoweb.view.ConsultaMilitarBean.excluir(ConsultaMilitarBean.java:36)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:264)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	... 30 more
R

Bom, o erro é que você está tentando dar um delete em null, e isso não é possível

coloque um breakpoint no seu setSelectedMilitar e veja que alguma hora antes da execução do seu método excluir vai ser enviado um null para ele.

W

digaoneves:
Bom, o erro é que você está tentando dar um delete em null, e isso não é possível

coloque um breakpoint no seu setSelectedMilitar e veja que alguma hora antes da execução do seu método excluir vai ser enviado um null para ele.

Quando eu seleciono o registro a ser excluído ele seta o setSelectedMilitar corretamente, porém quando eu confirmo a exclusão da caixa de diálogo o método recebe um valor null para ser removido…
Como posso resolver isso?

R

Qual o escopo do seu MB?

W

Não defini o escopo. Está o padrão mesmo.

R

Tente definir como @ViewScoped e veja se há alteração.

Um amigo meu se atentou ao fato de que seu ManagedBean pode estar sendo instanciado novamente, perdendo os valores.

W

digaoneves:
Tente definir como @ViewScoped e veja se há alteração.

Um amigo meu se atentou ao fato de que seu ManagedBean pode estar sendo instanciado novamente, perdendo os valores.

Cara, tah funcionando agora!

Mas só tem um detalhe agora.
Quando eu excluo um registro a tabela está atualizando normalmente, MAS quando eu pesquiso um registro utilizando o filterBy e excluo o registro NÃO ATUALIZA a tabela apesar de excluir normalmente o registro.

Minha coluna está assim:

<p:column filterBy="#{militar.nomeGuerra}">
					<f:facet name="header">
						<h:outputText value="Nome de guerra" />
					</f:facet>
					<h:outputText value="#{militar.nomeGuerra}" />
				</p:column>

Sabe o por que não atualiza?

W

Tem alguém aqui que pode me ajudar?
:?:

T

se vc usar o dataModel isso fica tão simples

acho que isso vai resolver seu problema, teste ai

public void excluir() {  
            GestaoMilitares gestaoMilitares = new GestaoMilitares(  
                    this.repositorios.getMilitares());  
            try {  
                gestaoMilitares.excluir(getSelectedMilitar());  // getSelectedMilitar()
                this.passeSuaListaAqui.remove(getSelectedMilitar());
      
                this.inicializar();  
      
                FacesUtil.adicionarMensagem(FacesMessage.SEVERITY_INFO,  
                        "Registro excluído com sucesso!");  
            } catch (RegraNegocioException e) {  
                FacesUtil.adicionarMensagem(FacesMessage.SEVERITY_ERROR,  
                        e.getMessage());  
            }
}
W

tmvolpato,

obrigado por responder.
Desta forma também não resolveu. :?
A lista no managed bean está atualizando, o problema está sendo no dataTable mesmo que não está funcionando corretamente.
Alguém tem mais sugestão?

W

Parece que existe um bug no PrimeFaces que ainda não foi corrigido. Veja: http://code.google.com/p/primefaces/issues/detail?id=3970
Estou usando a última versão (3.4) e o bug foi reportado na versão 3.2

L

Olá galera, bom dia!!!

Wendell, estou com o mesmo problema que vc reportou por último…o dataTable não atualiza quando excluo um registro!!

Vc conseguiu resolver?..se sim, poderia me dizer como?

Meu botão/link está da seguinte forma:

<h:commandLink action="#{fornecedorBean.remover}" title="Excluir" onclick = "if(!confirm('Tem certeza que deseja excluir esse fornecedor?')) return false">
	<f:ajax execute="@form" render=":listagemFornecedor"/>
	<h:graphicImage library="imagens" name="excluir.png" style="border:0"/>
	<f:setPropertyActionListener target="#{fornecedorBean.fornecedor}" value="#{frn}"/>
</h:commandLink>

Obrigado!

W

Olá companheiro,

seu problema é exatamento como o meu? Tipo, só atualiza quando não utiliza do filtro? E se não utilizar o filtro funciona?
Se este for o seu caso também ainda não consegui resolver este problema. :frowning:

L

Opa…entendi vc dizer que estava tendo problema ao excluir um registro…se não for isso, desculpa!!

Meu problema é esse!..quando excluo um registro qualquer da tabela, funciona perfeitamente.

Porém, quando filtro por qualquer registro e mando excluir, não atualiza a tabela…o registro é excluído, mas só vejo isso se atualizar a página inteira ou se apagar os dados do filtro que coloquei como pesquisa!!!

Tem alguma ideia de como resolver isso?

R

No seu update acrescenta o id da tabela.

<p:commandButton id="confirm" value="Sim" update=":form:idTabela"  
                    oncomplete="confirmation.hide()"  
                    actionListener="#{consultaMilitarBean.excluir}"/>

Flw !!!

L

Vlw camarada, pela ajuda…mas não funciona aqui pq não estou utilizando o <p:commandButton> e sim o <h:commandLink>…

estou ficando bolado com esse erro…sem filtrar, exclui perfeitamente em qualquer linha…mas filtrando, dá isso!!!

W

rof20004:
No seu update acrescenta o id da tabela.

<p:commandButton id="confirm" value="Sim" update=":form:idTabela"  
                    oncomplete="confirmation.hide()"  
                    actionListener="#{consultaMilitarBean.excluir}"/>

Flw !!!

Fiz o teste aqui e também não funcionou…

Acho que esse negócio está e bugado mesmo :?

R

leonardoteles:
Vlw camarada, pela ajuda…mas não funciona aqui pq não estou utilizando o <p:commandButton> e sim o <h:commandLink>…

estou ficando bolado com esse erro…sem filtrar, exclui perfeitamente em qualquer linha…mas filtrando, dá isso!!!

Uai, so por o update no commandLink :wink:

L

realmente não está funcionando…

quando coloco o ajax como disabled = true, ele renderiza a página mas o valor excluído ainda continua na tabela…como false ele nem renderiza a tela…mas em todos os casos, o valor é apagado!!!

coisa de doido!!

R

ajax disabled=true ???

Mostra so essa linha que voce fez isso por favor ?

T

leonardoteles

Estou exatamente com o mesmo problema que você.
Conseguiu resolver?

obrigada

M

voltando para o botão eo confirme !!!

Poem aii como ficou o seu por favor , estou no desespero , to agarrado nisso a 3 dias e só falta o excluir =)

Por favor , poem aiii …

O meu ta excluindo sempre o primeiro da lista , nao importa qual vocÊ click , ele apaga o primeiro da lista !

A

Socorro estou com este mesmo problema !!!

M

arllenlira , o meu ficou assim mano e estar funcionando !!!!!

<h:form prependId="false">  
                      
    
	
	 <p:dataTable id="table" var="produto" value="#{pBean.listaProduto}" sortMode="multiple" 
	 rows="7" paginator="true" styleClass="fonteMenor"  > 
	 
		
			  
			  <p:column filterBy="#{produto.nome}" headerText="Nome do Produto">  
           	 	<h:outputText value="#{produto.nome}" />  
        	  </p:column>
        	  
        	  <p:column sortBy="#{produto.preco}" headerText="Preço" >  
           	 	<h:outputText value="#{produto.preco}" id="preco" >
           	 		<f:convertNumber  for="preco" pattern="0.00" currencySymbol="R$"/>
           	 	</h:outputText>  
        	  </p:column>
        	  
				
			  <p:column  headerText="Editar" width="0">  
           	 	<p:commandButton id="editar" value="Editar"  icon="ui-icon-pencil" action="#{pBean.editar1}" 
           	 	update="table"  ajax="false"  >
           	 		<f:setPropertyActionListener value="#{produto}" target="#{pBean.produto}" for="editar"/>
           	 	</p:commandButton> 
			  </p:column>
        	  
        	  <p:column  headerText="Excluir" width="0">  
           	 	<p:commandButton value="Excluir" onclick="confirmation.show()" id="excluir" 
           	 	icon="ui-icon-trash">
						<f:setPropertyActionListener value="#{produto}" target="#{pBean.produto}" for="excluir"/>			
           	 	</p:commandButton>
           	 
      		   </p:column>
	 </p:dataTable>
	

	 
		 <p:dialog id="confirmDialog" header="Atenção !" severity="alert" widgetVar="confirmation"
     				  showEffect="explode" hideEffect="bounce" appendToBody="true" modal="true">  
                 
                  <h:outputText value="Você deseja excluir esse Produto ?" />
                  <br /><br />

      			 <p:commandButton value="Sim" oncomplete="confirmation.hide()" update="table" action="#{pBean.excluir}"  >  
	 		 		
	 			 </p:commandButton>
	 			 
	 			 
        			 <p:commandButton id="decline" value="Ainda Não" onclick="confirmation.hide()" type="button" />   
   				 </p:dialog> 
<p:growl id="form1"  autoUpdate="true"/>
    </h:form>
P

estou com o mesmo problema…

P

No meu caso, o objeto passado pelo setproperthactionlistener fica nulo quando se usa o filtro. Quando não usa, funciona normalmente pegando o valor do registro, da linha…

Criado 20 de setembro de 2012
Ultima resposta 21 de abr. de 2014
Respostas 27
Participantes 9