Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Uma solução para aparecer um dialog quando for excluir do banco de dados

Boa noite, já procurei no primefaces em foruns mais não consegui uma solução para minha duvida! Por exemplo tenho a minha página xhtml e nela tenho uma tabela com uma coluna de opções para excluir e editar! Na parte de excluir quando clico na meu excluir quero que apareça um dialog perguntando se realmente quero excluir! Até ai tudo bem mais o problema é que o meu dialog fica fora da tabela, e não é possivel carregar uma variavel fora da tabela, e então não sei a solução para quando aparecer o dialog com a resposta se quero excluir e quando clicar no sim puxar o meu metodo com uma variavel porém como disse não é possivel porque não está dentro da tabela! como fazer ao clicar no meu sim e excluir.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:p="http://primefaces.org/ui"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets">

<ui:composition template="/template/template.xhtml">
    <ui:define name="conteudo">
        <div class="ui-fluid">
            <h:form id="formularioTabela">
                <p:growl id="mensagem" showDetail="true" sticky="true" />
                <p:dataTable id="tabelaFornecedores" paginator="true" rows="8"
                    value="#{fornecedorBean.fornecedores}" var="fornecedor"
                    emptyMessage="Nenhum fornecedor encontrado">
                    <f:facet name="header">Tabela Fornecedor</f:facet>
                    <f:facet name="footer">
                        <p:commandButton value="Novo" onclick="PF('novo').show();"
                            update=":dialogFornecedor" />
                    </f:facet>

                    <p:column headerText="Codigo" filterBy="#{fornecedor.codigo}"
                        filterMatchMode="contains" sortBy="#{fornecedor.codigo}"
                        style="width: 10%">
                        <h:outputText value="#{fornecedor.codigo}" />
                    </p:column>

                    <p:column headerText="Descrição" filterBy="#{fornecedor.descricao}"
                        filterMatchMode="contains" sortBy="#{fornecedor.descricao}">
                        <h:outputText value="#{fornecedor.descricao}" />
                    </p:column>


                    <p:column headerText="opção">
                        <h:panelGrid columns="2">
                            <p:commandButton update=":teste" icon="fa fa-fw fa-remove"
                                onclick="PF('excluir').show();" />
                        </h:panelGrid>
                    </p:column>




                </p:dataTable>
            </h:form>

            <p:dialog appendTo="@(body)" draggable="false" resizable="false"
                closable="true" widgetVar="novo" header="Adicionar Fornecedor"
                modal="true">
                <h:form id="dialogFornecedor">
                    <h:panelGrid columns="2">
                        <p:outputLabel value="Descrição: " for="descricao" />
                        <p:inputText id="descricao"
                            value="#{fornecedorBean.fornecedor.descricao}" size="40" />
                    </h:panelGrid>
                    <p:commandButton value="Salvar"
                        actionListener="#{fornecedorBean.salvar}"
                        update=":formularioTabela" oncomplete="PF('novo').hide();" />
                    <p:commandButton value="Cancelar" onclick="PF('novo').hide();" />
                </h:form>
            </p:dialog>

            <p:dialog appendTo="@(body)" draggable="false" resizable="false"
                closable="true" widgetVar="excluir" header="Deseja Excluir?"
                modal="true">

                <h:form id="teste">
                    <h:panelGrid columns="2">
                        <p:outputLabel value="Descrição: " />
                        <p:inputText value="#{fornecedorBean.fornecedor.descricao}"/>
                    </h:panelGrid>
                    <p:commandButton value="Sim"
                        actionListener="#{fornecedorBean.teste}" />
                </h:form>
            </p:dialog>


        </div>
    </ui:define>
</ui:composition>
</html>

porque dentro da minha tabela consigo excluir com o método simples.

@Transacional
    public void excluir(Fornecedor fornecedor) {
        dao.excluir(fornecedor);
        mensagem.mensagem("FORNECEDOR excluido com SUCESSO");
        this.fornecedores = dao.lista();
    }
2 respostas
solução!

Oi Alisson, esse já é um problema bem específico... Talvez tb não tenha ninguém aqui no forum da alura que consiga te ajudar, infelizmente.

Certo Alberto valeu!