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

7 respostas
Rafael_Nascimento

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,

7 Respostas

N

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!

diogozero

Tentou utilizar update="@all"?

gabrielfrios

Usa o

update=":<idComponent>"

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

tmvolpato

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:

gabrielfrios:
Usa o

update=":<idComponent>"

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

jeanmalvessi

Tente assim:

update=":frm01:tabView:listDataTable"
Rafael_Nascimento

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

Rafael_Nascimento

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!

Criado 3 de julho de 2012
Ultima resposta 11 de jul. de 2012
Respostas 7
Participantes 6