Mas não pede confirmação para excluir, aí pensei em usar um p:confirmDialog, e fiz assim:
<h:commandButtonvalue="Excluir"onclick="confirmation.show()"type="button"><!--<f:paramid="id"name="id"value="#{s.id}"/>--></h:commandButton><p:confirmDialogmessage="Confirma a Exclusão do Registro #{s.id} ?"showEffect="bounce"hideEffect="explode"header="Confirma exclusão?"severity="alert"widgetVar="confirmation"><p:commandButtonvalue="Sim"update="messages"oncomplete="confirmation.hide()"action="#{destinoBean.remover}"ajax="false"><f:paramid="id"name="id"value="#{s.id}"/></p:commandButton><p:commandButtonvalue="Não"onclick="confirmation.hide()"type="button"/></p:confirmDialog>
Porém, na parte “Confirma a Exclusão do Registro #{s.id} ?” o s.id retornado é o último registro da minha dataTable, independente de qual registro eu clicar no botão. Alguém sabe onde está meu equívoco?
:lol:
Vlw
Galera, já fiz vários testes, mas não consegui obter o resultado esperado, será que alguem pode dar uma força aí ?
Obrigado
Douglas
E
edudebom
Tenho um problema semelhante, mas a diferença é que não exibe a tela.
No seu caso pega o último pois você deve estar instanciando o objeto antes (por um datatable por exemplo) então eu mandaria o objeto onde “s” em target=“destinoBean.s” é o nome do seu obj em destinoBean.
Alterar funciona legal, pois está dentro do dataTable. Porém o excluir chamo um confirmDialog e está fora.
Tenho o seguinte:
<p:dataTablevar="pastelTable"value="#{PastelMB.listaRegistros}"paginator="true"rows="10"emptyMessage="Nenhum registro encontrado."paginatorPosition="bottom"id="tabelaPastel"loadingMessage="Carregando..."><p:columnwidth="100"><f:facetname="header"><h:outputTextvalue="Excluir"/></f:facet><p:commandButtonvalue="Excluir registro"onclick="cd.show()"style="height: 30px; font-size: 14px"update="tabelaPastel, cd, aviso"><f:setPropertyActionListenervalue="#{pastelTable}"target="#{PastelMB.pastel}"/></p:commandButton></p:column></p:dataTable><h:form><p:confirmDialogmessage="Tem certeza que deseja excluir o registro #{PastelMB.pastel.nome} ?"header="Excluir registro"severity="alert"widgetVar="cd"><p:commandButtonvalue="Sim"actionListener="#{PastelMB.remove}"onclick="cd.hide()"update="aviso, tabelaPastel"></p:commandButton><p:commandButtonvalue="Não"onclick="cd.hide();"update="cd"/></p:confirmDialog></h:form>
A janela de confirmação pega o primeiro registro sempre. Depois mesmo clicando em outro registro sempre mostra o mesmo nome. E o estranho que deleta corretamente. Precisaria recarregar esse astelMB.pastel.nome ao chamar a janela. Acredito que resolveria.
Alguma ideia ?
A
andii.brunetta
Você precisa dar um update no h:form que envolve o p:confirmDialog e não no p:confirmDialog mesmo
E
edudebom
Tentei o seguinte código mas somente o que mudou foi que a tela se duplica:
<h:formid="formExcluir"><p:confirmDialogmessage="Tem certeza que deseja excluir o registro #{PastelMB.pastel.nome} ?"header ="Excluir registro"severity="alert"widgetVar="cd"><p:commandButtonvalue ="Sim"actionListener="#{PastelMB.remove}"onclick="cd.hide()"update="aviso, tabelaPastel, formExcluir"></p:commandButton><p:commandButtonvalue ="Não"onclick="cd.hide();"update="formExcluir"/></p:confirmDialog></h:form>
A
andii.brunetta
No meu caso uso assim no commandButton:
<p:commandButton actionListener="#{filialBean.selecionar}" update="formDesabilitarFilial" image="selecionar" title="Selecionar" oncomplete="dlgTabelaFiliais.hide()" >
<f:attribute name="codigo" value="#{filial.codigo}" />
</p:commandButton>
e no confirmDialog: