Pessoal,
Tenho uma Datatable e uma das colunas tenho dois botões, alterar e excluir como segue abaixo (sem o alterar)
<p:column headerText="Ações" style="max-width: 8%; min-width: 8%">
<p:commandButton action="#{clienteService.remove}" icon="ui-icon-trash" ajax="false" title="Excluir o Cliente" style="color:#FF0000;background-color:#FFFFFF">
<f:setPropertyActionListener value="#{cliente}" target="#{clienteService.selectedEntity}"/>
</p:commandButton>
</p:column>
Esse código funciona 100%
No entanto, preciso colocar uma confirmação na hora da exclusão e para tal utilizei o ConfirmDialog, e alterei o código acima para o de baixo
<p:column headerText="Ações" style="max-width: 8%; min-width: 8%">
<p:commandButton type="button" onclick="confirmation.show()" icon="ui-icon-trash" ajax="false" title="Excluir o Cliente" style="color:#FF0000;background-color:#FFFFFF">
<f:setPropertyActionListener value="#{cliente}" target="#{clienteService.selectedEntity}"/>
</p:commandButton>
</p:column>
Abaixo o meu COnfirmDialog
<p:confirmDialog message="Deseja realmente excluir este registo?" closable="false" header="Aviso" severity="alert" widgetVar="confirmation">
<p:commandButton id="btnSim" value="Sim" oncomplete="confirmation.hide()" process="@this" action="#{clienteService.remove}"/>
<p:commandButton id="btnNao" value="Não" onclick="confirmation.hide()" type="button"/>
</p:confirmDialog>
No caso, o selectedEntity agora está null no método remove
public void remove() {
try {
((XptoUseCase) getUseCase()).remove(selectedEntity);
} catch (Exception e) {
FacesUtils.addErrorMessage(e.getMessage());
}
}
Como disse, sem o confirmDialog funciona 100%
Alguma idéia do que pode ser?