Boa noite a todos!
Estou com um problema ao usar o p:commandButton dentro de um p:datatable
o botão de alterar e excluir não executa o actionListener, tampouco o action
não sei mais o que fazer
alguém já passou por isso e tem como me ajudar?
segue abaixo html
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:df="http://www.dataci.es.gov.br/ui">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<h:form id="formNoti" style="font-size:11px">
<table style="z-index: 500" id="tabela">
<tr><td height="20px"></td></tr>
<tr>
<td align="right" colspan="2">
<h:inputHidden id="idPont" value="#{TrNotificacaoSB.entidade.notiNumPontos}" />
<df:inputTextID value="#{TrNotificacaoSB.entidade.notiCodigo}" id="codigo" text="Código"/>
<!-- outros campos do formulario -->
</td>
</tr>
<tr>
<td align="right" colspan="2">
<hr />
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="125px" align="right" style="height:25px">
Endereco <p:spacer width="5"/>
</td>
<td>
<p:commandButton value="Adicionar" disabled="#{TrNotificacaoSB.entidade.notiCodigo == null}" actionListener="#{TrEnderecoSB.prepararAdicionar}" style="font-size: 10px" oncomplete="manEnd.show();" ajax="true" update="@([id$=manEnd])"/>
<p:dataTable id="tabelaEnex" var="list" value="#{TrEnderecoSB.listEntityTabular}" style="font-size: 10px" rowKey="#{list.enexCodigo}" selectionMode="single">
<p:column headerText="Logradouro" style="width: 30%">#{list.enexTipoLogr} #{list.enexTituAbr} #{list.enexLogrnom}</p:column>
<p:column headerText="Bairro" style="width: 20%">#{list.enexBairnom}</p:column>
<p:column headerText="Cidade" style="width: 20%">#{list.enexCidade}</p:column>
<p:column headerText="Estado" style="width: 15%">#{list.enexUf} - #{list.enexEstado}</p:column>
<p:column headerText="Ações" style="width: 15%"> <center>
<p:commandButton value="Alterar" action="#{TrEnderecoSB.prepararAlterar}" style="font-size:10px" oncomplete="manEnd.show();" ajax="true" update="@([id$=manEnd])"/>
<p:commandButton value="Deletar" actionListener="#{TrEnderecoSB.deletar()}" style="font-size:10px" update="tabelaEnex"/>
</center>
</p:column>
</p:dataTable>
</td>
</tr>
</table>
<hr />
</td>
</tr>
</table>
</h:form>
<p:dialog modal="true" dynamic="true" header="Endereco" widgetVar="manEnd" resizable="true" width="700" id="manEnd" prependId="false">
<ui:include src="/cadastro/FrmTrEndereco.xhtml"></ui:include>
</p:dialog>
</ui:composition>
Poste o código do ManagedBean, por favor.
package br.gov.es.dataci.transporte.managed;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.faces.bean.ViewScoped;
import br.gov.es.dataci.commons.validator.Validator;
import br.gov.es.dataci.commonsejb.entity.Entidade;
import br.gov.es.dataci.commonshibernate.commons.ServiceLocator;
import br.gov.es.dataci.commonshibernate.exception.ServiceException;
import br.gov.es.dataci.enderecamentounico.service.UetituService;
import br.gov.es.dataci.enderecamentounico.service.UetplgService;
import br.gov.es.dataci.transporte.abstrato.SessionBeanTabular;
import br.gov.es.dataci.transporte.commons.OpcaoMenuCadastro;
import br.gov.es.dataci.transporte.entidades.TrEnderecoExterno;
import br.gov.es.dataci.transporte.service.TrEnderecoExternoService;
import lombok.Getter;
import lombok.Setter;
@ManagedBean(name=“TrEnderecoSB”)
@ViewScoped
public class TrEnderecoSB extends SessionBeanTabular {
@Getter @Setter
@ManagedProperty(value = "#{TrNotificacaoSB}")
private TrNotificacaoSB trNotificacaoSB;
private Long notiCodigo= 0L, notiCodigoAux=0L;
public TrEnderecoSB() {
super(TrEnderecoExterno.class);
}
@Override
public Class getServiceClass() {
return TrEnderecoExternoService.class;
}
@Override
public String getSecurityFunction() {
return "TR017";
}
@Override
public String getNomeFormulario() {
return "ENDERECO";
}
/*#{detalhe.managedBean.getListEntityTabular}*/
public DataModel listTplgcod() throws ServiceException{
UetplgService tplgServ = (UetplgService) ServiceLocator.getInstance().getService(UetplgService.class);
return new ListDataModel(((UetplgService) tplgServ).listAll());
}
public DataModel listTituabr() throws ServiceException{
UetituService tituServ = (UetituService) ServiceLocator.getInstance().getService(UetituService.class);
return new ListDataModel(((UetituService) tituServ).listAll());
}
@Override
public TrEnderecoExterno getEntidade() {
//System.out.println("enderecoexternosb entidade " + trDelegatarioSB + " | " + trNotificacaoSB);
if (entidade == null) {
entidade = (TrEnderecoExterno) Entidade.newInstance(TrEnderecoExterno.class);
entidade.setNotiCodigo(trNotificacaoSB.getEntidade());
}
return entidade;
}
@Override
public void prepararAdicionar(ActionEvent actionEvent) {
System.out.println("preparar adicionar");
super.prepararAdicionar(actionEvent);
}
@Override
public void prepararAlterar(ActionEvent actionEvent) {
System.out.println("preparar alterar");
super.prepararAlterar(actionEvent);
}
@Override
public String confirmar() throws ServiceException {
System.out.println("confirmar " + notiCodigo + " " + notiCodigoAux);
notiCodigoAux = 0L;
return super.confirmar();
}
@Override
public String deletar() throws ServiceException {
System.out.println("deletar");
return super.deletar();
}
public String alterar(TrEnderecoExterno enex){
System.out.println("entidade " + entidade);
setActiveIndex(OpcaoMenuCadastro.ALTERAR.getIndex());
setActiveItem(OpcaoMenuCadastro.ALTERAR.getDescricao());
entidade = enex;
return "";
}
@Override
public DataModel getListEntityTabular() {
try {
if(!trNotificacaoSB.isEntityNull() && trNotificacaoSB.getEntidade() != null && !Validator.isEmptyNullOrZero(trNotificacaoSB.getEntidade().getNotiCodigo())){
notiCodigo = trNotificacaoSB.getEntidade().getNotiCodigo();
}
if ((!Validator.isEmptyNullOrZero(notiCodigo) && !notiCodigo.equals(notiCodigoAux))
) {
List<TrEnderecoExterno> list = consultaPadrao(null, null, notiCodigo.toString());
listEntityTabular = new ListDataModel(list);
//System.out.println("entrei no if " + list.size());
/*if (list.size() == 1) {
entidade = (TrEnderecoExterno) list.get(0);
}*/
} else{
listEntityTabular = new ListDataModel(new ArrayList());
}
} catch (Exception e) {
e.printStackTrace();
}
notiCodigoAux = notiCodigo; //= trDelegatarioSB.getEntidade().getDeleCodigo();
return listEntityTabular;
}
}