Senhores, minha aplicação JSF tem uma página com dataTable. Com botão de excluir. Ao clicar no botão, abro um p:confirmDialog. Se o usuário aceita, faço a exclusão, mas a linha persiste na dataTable. Alguém tem uma idéia de como fazer um refresh no onClose do p:confirmDialog?
Obrigado. Um abraço
Você não precisa utilizar o onclose. Basta após excluir o registro, atualizar o datatable.
não seria só um update ou reRender no botão de excluir?
update = “componente”
vc pode dar um update no datable ou usar o @form no atributo update do ajax, eu recomendaria vc colocar um update=“iddodatable” como vc ta usando o primefaces se pegar o guide deles deve ter exemplos lá. É bem completa ela com bons exemplos.
Acredito q vc utiliza uma lista para preencher sua tabela,
se for utilizar o update desse no componente, vc não pode esquecer
de retirar o obj da sua lista. mas se sua pagina so fazer
esse procedimento e você prefere carregar toda a pagina,
aconselho vc realizar um action retornando a string da pagina que
desejar ir, se for a mesma, coloque o mesmo nome da pagina,
eu tive um problema parecido, logo, criei um método de inicialização
de pagina, ou seja, quando a pagina é carregada o método é executado
e preenche as listas com os dados do banco de dados.
para isso basta criar um método como:
private TipoObjeto objetoSelecionado;
//método de inicialização
@PostConstruct
public void inicializar(){
lista = objetoClasseDAO.listar();
}
//método para excluir
public String excluir(){
objetoClasseDAO.excluir(objetoSelecinado);
inicializar();
return "pagina?faces-redirect=true";
}
não esqueça do " @PostConstruct" ele eh um metadado que indica que
o método deve ser executado após a construção. O método inicializar eu chamei no
método excluir pq, nao sei s estou fazendo do melhor método, mas trabalho com 4 tabelas que
trabalhando simultaniamente, logo eh trocada informação entre as 4 e somente deste modo consegui
realizar o carregamento delas. e a utilização da ?faces-redirect=true eh para realizar o redirecionamento
No botão vc chama o método no action dele
<p:commandButton id="Button" value="Excluir"
action="#{classeBean.excluir()}"
onclick="dialog.hide()" />
Tomara que te ajude
Senhores, em especial Luciano, muito obrigado. Dicas muito úteis. Consegui resolver. Obrigado mesmo.
Um abraço