Estou tentando fazer o seguinte: tenho uma página jsf cujo backing bean possui uma lista. Essa lista é renderizada em uma tabela (estou usando dataTable do Rich Faces).
Os dados dessa tabela vêm de uma outra página. Ou seja, Quando o usuário abre essa página, a lista está vazia. Após clicar em um botão, um pop up é aberto. Nele o usuário faz outra consulta, marca, através de check box, as linhas que deseja incluir e clica em um novo botão. O pop up é fechado e as linhas selecionadas no popup devem agora fazer parte da tabela da primeira página.
Minha dúvida: como re-renderizar apenas a tabela?
Não gostaria de dar refresh na página inteira. Gostaria de, após tratar o evento da página de popup, conseguir re-renderizar a tabela da página que o abriu.
Resolvi com o atributo reRender do a4j:commandButton.
Nesse atributo você fornece os id’s dos componentes que precisam ser re-renderizados após a ação.
Rapha, o caso da Liss creio que é o mesmo que o meu. Não bastar usar o reRender, não funciona porque o componente a ser renderizado esta na pagina de origem, que abriu o popup. fiz o test aqui e nao funciona, talvez tenhamos que dizer que o reRender tem que ser feito no parent para que ele ache o componente, erro que aponta no meu console:
WARN AjaxContext:598 - Target component for id data_user_modal not found
obs: somente consegui fazer funcionar dando um refresh tal que a liss disse do poup para a pagina opener. “javascript:window.opener.location.reload();”
Mas gostaria de resolver de outra forma, pelo reRender mesmo! SE alguem souber como por favor, post!!!
Cara, aqui funciona normalmente o reRender informando o id do dataTable.
Eu sugiro tentar o a4j:outputPanel e “reRenderizá-lo” através do id. Vai funcionar!