Problemas em aplicar evento para um linha específica de uma datatable
4 respostas
gustavoRamos
Olá a todos. estou desenvolvendo uma aplicação de cadastros (CRUD) onde esta é uma página web que possui uma datatable que para cada cadastro que eu faça a mesma datatable aumenta uma linha ( ). Mas há um problema: o que eu quero é cadastrar e na hora que aparacer na tabela tenha uma coluna que tenha um botão de exclusão (para excluir o cadastro, tipo um iconezinho de uma lixeira sabe?). nessa parte travei. não consigo fazer tal evento funcionar.
estou usando o framework icefaces (que é semelhante ao JSF), portanto quem souber de icefaces , JSF ou somente souber a resposta peço encarecidamente por ajuda.
OBS: tenho já um Managed Bean e um método de exclusão do banco de dados que já testei e sei que funciona.
Não sei se isso ajuda, mas uso o Tomahawk e faço assim:
managed bean:
publicclassPessoaMB{privatePessoapessoa=newPessoa();// você precisa ter um atributo de classe...publicvoiddeleta(ActionEventevent){PessoaDAOpessoaDAO=newPessoaDAO();pessoaDAO.delete(pessoa);// aqui você pega o atributo de classe que foi atualizado pelo t:updateActionListener}}
Sefo, ali onde chama o método de exclusão do bean tem aquele ‘(_obj)’.
isso seria o parâmetro do método, correto? que no caso, é o dado que foi escolhido para ser excluído. Estou certo?
se boto funcionar minha aplicação dá um erro, e nem abre a página, e o erro é nessa chamada.
minha página:
<f:view><ice:outputHtml><ice:outputHead><title>Cadastros-Fabricante</title><ice:outputStylehref="./xmlhttp/css/xp/xp.css"/></ice:outputHead><ice:outputBodystyle="background-color:white;"><divid="tudo"><ice:formid="geral"><divid="image"><ice:graphicImageurl="img/logo.jpg"alt="Gtmed"></ice:graphicImage></div><divid="title"><h3><ice:outputLabelstyle="color: white;"value="Escolha o item que você deseja Cadastrar:"/></h3><br><br></div><hr><ice:menuBarid="menu"><ice:menuItemid="fabricante"value=" Fabricante "action="Fabricante.jsp"/><ice:menuItemvalue=" Distribuidor "/><ice:menuItemvalue=" Outro "/><ice:menuItemvalue=" Mais outro aqui "/></ice:menuBar><br><br><hr></ice:form><ice:formid="main"><divid="cadastro"><ice:outputLabelvalue="Nome:"/><ice:inputTextvalue="#{FabricanteBean.f.nomeFabricante}"/><br><br><ice:commandButtonvalue="Cadastrar fabricante"action="#{FabricanteBean.addFabricante}"></ice:commandButton></div><divid="tabela">Fabricantes:<br><ice:dataTablevalue="#{FabricanteBean.fabricantes}"var="item"><h:column><f:facetname="header"><h:outputTextvalue="ID"/></f:facet><h:outputTextvalue="#{item.idFabricante}"/></h:column><h:column><f:facetname="header"><h:outputTextvalue="nome"/></f:facet><h:outputTextvalue="#{item.nomeFabricante}"/></h:column><h:column><f:facetname="header"><h:outputTextvalue="excluir"/></f:facet><ice:commandButtonaction="#{FabricanteBean.deleteFabricante(_obj)}"image="img/del.jpg"title="Excluir"styleClass="imgCmdBtn"onclick="if(!confirm('Tem certeza que deseja excluir este fabricante ?')){ return; };"></ice:commandButton></h:column></ice:dataTable><br><ice:commandButtonvalue="Excluir Fabricante"action="#{FabricanteBean.deleteFabricante}"visible="false"></ice:commandButton></div></ice:form></div></ice:outputBody></ice:outputHtml></f:view>