[RESOLVIDO]primeFaces: É possível atualizar uma dataTable a partir de outro form?

galera, minha situação é parecida com a seguinte:

<h:form id="frm01">
           <p:growl id="msg"
           <p:tabView id="tabView">
                    <p:tab id="tabA"/>
                                ...
                    </p:tab>
                    <p:tab id="tabB"/>
                                <p:dataTable id="listDataTable" value="#{bean.list}">
                                            .... columns....
                               </p:dataTable>
                    </p:tab>
           </p:tabView>
</h:form>

<p:dialog id="dialog" modal="true">
       <h:form id=dialogForm"">
                       ... input fields to add this item to bean list ...

                   <p:commandButton value="Adicionar" action="#{bean.addItemList}" update="frm01:listDataTable  frm01:msg"/>
       </h:form>
</p:dialog>

quando clico em “Adicionar”, o growl é atualizado e exibe a mensagem, mas a dataTable não, embora o item tenha sido adicionado na lista do Bean. Eu consigo ver a dataTable atualizada apenas se pressionar F5

Também tentei atualizar a dataTable com outros parametros:
frm01:listDataTable
:frm01:listDataTable
listDataTable
frm01:tabView:listDataTable
frm01:tabView:tabB:listDataTable

mas nenhum deu certo

alguém sabe se é possivel atualizar a dataTable nessa situação ??

valeu!!

ambiente: primeFaces 3.3.1, glassFish 3.3.1, mojarra 2.1.3,

Você ja tentou utilizar o Selectors ou RequestContext do showcade do PrimeFaces? se o Form tiver na mesma pagina você pode fazer assim update="@(form:meuForm)" caso queira atualizar o form todo faça assim update="@(form)", esses são alguns exemplo de uma olhada no ShowCase do PrimeFaces e se quizer se aprofundar mais, entre no showCase do JQuery e procure por Selectors, espero que ajude!

Tentou utilizar update="@all"?

Usa o

update=":<idComponent>"

Obs: há um dois pontos(:slight_smile: antes do id do componente

bem colocado

qdo você quer dar update em outro form ou quer componente que está fora do form no qual você está
tem que usar 2 pontos(:slight_smile:

[quote=gabrielfrios]Usa o

update=":<idComponent>"

Obs: há um dois pontos(:slight_smile: antes do id do componente[/quote]

Tente assim:

update=":frm01:tabView:listDataTable" 

galera, obrigado pelas dicas, mas não consegui nem a pau atualizar essa dataTable :?

como to sem tempo pra ficar investigando, criei uma uma solução alternativa, que talvez indique a causa do problema: tirei a <p:tabView> e simulei minhas próprias “tabs” [com commandButtons, panels, e javaScript (que exibe/esconde os paineis de acordo com o botão clicado), os botões representam as abas]. Nesse cenário consegui atualizar a dataTable a partir da dialog apenas passando o caminho “idForm:idDataTable”

se alguém conseguir atualizar a dataTable como foi colocado no cenário inicial, poste o código ae :smiley:

obrigado

no primeFaces 3.3.1 a sintaxe funciona.
Atualizei as libs do primeFaces no meu projeto (do 3.0 para o 3.3.1) mas ele continuava compilando como se fosse do prime 3.0. Depois que limpei e construi a aplicação a sintaxe passou a funcionar!