[RESOLVIDO] Atualizar lista no dataTable após excluir - JSF Primefaces

6 respostas
poliana

Olá Pessoal,

Estou com o seguinte problema:

Tenho uma lista de objetos que popula uma datatable.
Tenho uma coluna com um botao excluir para cada objeto.
Ao clicar neste botao, eu abro um Modal Dialog que tem um campo para colocar uma observacao antes de excluir.
Após colocar uma observacao clico em enviar e o objeto é excluido com sucesso e o dialog é fechado, porém a lista não é atualizada.
Ja coloquei o Bean como View Scoped, porém não atualiza a lista mesmo assim.

Segue o código:

xhtml

...
                         <h:column>
                                <f:facet name="header">Excluir</f:facet> 
                                <p:commandButton id="ExcluirDialogButton"  value="Excluir" onclick="popExcluir.show();" actionListener="#{meuBean.populaIdObjetoSelecionado(c.id)}"   styleClass="btn  btn-small"  style="width: 80px; "   />  
                            </h:column>
</h:dataTable>

...
<p:dialog id="modalDialogExcluir" header="Excluir Solicitação" widgetVar="popExcluir" modal="true"  width="400" height="350" >  
                    <h:form>
                        <h:outputText value="Observação:" />  
                        <p:inputTextarea styleClass="obs-avaliacao" value="#{excluirBean.obs}" style="width: 350px; height: 200px;  "/>

                        <br/>
                        <p:commandButton  id="excluirButton"  value="Enviar" action="#{meuBean.excluir()}"  oncomplete="popAprovar.hide()"   styleClass="btn  btn-small"  update="@all"  />
                    </h:form>
                </p:dialog>

no Managed Bean está assim

@ManagedBean
@ViewScoped
public class MeuBean {

List listaObjetos = new ArrayList();
MeuServico service;
....

public String excluir() {
        service.excluir(i,1,obs);
        listaObjetos = service.atualizaLista();
        return "";
    }

Alguém sabe como posso fazer?

6 Respostas

lele_vader

Tenta mudar de update="@all" para process="@all"

Deixando a tag assim

<p:commandButton  id="excluirButton"  value="Enviar" action="#{meuBean.excluir()}"  oncomplete="popAprovar.hide()"   styleClass="btn  btn-small" process="@all"   />
A

ja tentasse força uma atualização ao final da ação do dialog

<p:ajax update=":dataTable" />
poliana

Pois é gente,

Tentei as duas opções e ainda não deu certo… Vou continuar tentando aki…

bobfroes

Olá amiga,

Acrescenta isso no seu código e veja se deu certo.

&lt;p:commandButton  update="suaTabela"/&gt;

&lt;p:dataTable id="suaTabela"&gt;

&lt;p:dataTable/&gt;
CristianPalmaSola10

voce tera que atualizar o dataTable, use a propriedade update do botao que o usuario clica para definitivamente excluir o registro

poliana

Muito obrigada pelas dicas pessoal.

Consegui fazer aqui.

A única maneira que funcionou foi recarregar a lista no oncomplete do commandButton:

substituí

oncomplete="popAprovar.hide()";

por

oncomplete="popAprovar.hide(); #{meuBean.objetos}"

Valeu

Criado 13 de junho de 2012
Ultima resposta 13 de jun. de 2012
Respostas 6
Participantes 5