Edit datatable in Javaweb Dialog box - JSF

Asked

Viewed 140 times

1

I need to edit a datatable line when I open the dialog box, but it’s not working the way I’m doing, I did a test on the console, and the object is null when I send the edit, it’s like I don’t load.

Image to demonstrate what I want:

inserir a descrição da imagem aqui

Datatable:

<p:dataTable emptyMessage="Nenhum registro salvo !"
 filteredValue="#{projetoBean.listaProjetosFiltrados}"
 value="#{projetoBean.listaProjetos}" var="projeto" rows="5" paginator="true" >

<p:column headerText="Porcentagem de Conclusão:">
<p:commandButton value="#{projeto.porcentagem}" onclick="PF('dlg1').show();"  >
<f:setPropertyActionListener target="#{projetoBean.projetoCadastro}"
                     value="#{projeto}"/>
</p:commandButton>
</p:column>     

</p:dataTable>

Dialog:

<h:form>
<p:dialog header="Editar Porcentagem" widgetVar="dlg1" minHeight="40">
     <h:outputText value="Digite a nova porcentagem" />
         <p:inputText maxlength="3" value="#{projetoBean.projetoCadastro.porcentagem}"/> 
    <p:commandButton value="Salvar" actionListener="#{projetoBean.editar}" update=":msgGlobal"/>
</p:dialog>
</h:form>

Bean:

@ManagedBean
@ViewScoped

public class ProjetoBean {
private String acao;
private Long idProjeto;
private Projeto projetoCadastro;
private List<Projeto> listaProjetos;
private List<Projeto> listaProjetosFiltrados;
private List<Usuario> listaUsuarios;
private List<Cliente> listaClientes;

//GetSet

public void limpar() {
    projetoCadastro = new Projeto();
}

public void criar() {

    try {
        ProjetoDAO projetodao = new ProjetoDAO();
        projetodao.salvar(projetoCadastro);

        projetoCadastro = new Projeto();

        FacesUtil.addMsgInfo("Projeto criado com sucesso !");
    } catch (RuntimeException ex) {
        FacesUtil.addMsgErro("Erro ao tentar incluir um projeto");
    }

}

public void carregarPesquisa() {

    try {       
        ProjetoDAO projetodao = new ProjetoDAO();
        listaProjetos = projetodao.listar();
    } catch (RuntimeException ex) {
        FacesUtil.addMsgErro("Erro ao listar Projetos");
    }

}

public void carregarCadastro(){

    try {       
        if(idProjeto != null){
            ProjetoDAO projetodao = new ProjetoDAO();       
            projetoCadastro = projetodao.buscarId(idProjeto);   
        } else {
            projetoCadastro = new Projeto();
        }

        UsuarioDAO usuariodao = new UsuarioDAO();   
        listaUsuarios = usuariodao.listar();

        ClienteDAO clientedao = new ClienteDAO();   
        listaClientes = clientedao.listar();

    } catch (RuntimeException ex) {
        FacesUtil.addMsgErro("Erro ao tentar obter dados do projeto.");
    }

}

public void excluir() {

    try {
        ProjetoDAO projetodao = new ProjetoDAO();
        projetodao.excluir(projetoCadastro);

        FacesUtil.addMsgInfo("Projeto removido com sucesso !");
    } catch (RuntimeException ex) {
        FacesUtil.addMsgErro("Erro ao tentar remover um projeto.");
    }

}

public void editar() {

    try {
        ProjetoDAO projetodao = new ProjetoDAO();
        projetodao.editar(projetoCadastro);
        System.out.println(projetoCadastro);
        FacesUtil.addMsgInfo("Projeto editado com sucesso !");
    } catch (RuntimeException ex) {
        FacesUtil.addMsgErro("Erro ao tentar editar um projeto.");
    }

}
}
  • Ever tried to update the dialog from the command button? It might not be being updated.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.