Atualizar outro h:form

3 respostas
prog.tiago

Boa noite amigos,

Pesquisei muito mas não consegui fazer algo que ao meu ver é simples.

Tenho um form com uma TREE do primefaces, gostaria de quando clicar num nó dessa tree, um outro form fosse atualizado com os dados carregados. No entanto, não consigo acessar esse outro form.

Vejam meu código:

Esse é o código que faz a chamada das minhas duas páginas. Cada um dos templates possui um form diferente.

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="./templates/templateGlobal.xhtml"
                xmlns:h="http://java.sun.com/jsf/html">


    <ui:define name="left">
        <ui:decorate template="templates/paginas/Hierarquias.xhtml"/>  
    </ui:define>

    <ui:define name="conteudo">
        <ui:decorate template="templates/paginas/ResumoConsumo.xhtml"/>
    </ui:define>

</ui:composition>

Essa é a página que possui minha tree.

<h:form>


        <p:tree value="#{treeBean.root}" var="node" id="tree" style="width: auto" 
                selectionMode="single" selection="#{resumoConsumoBean.treeSelecionado}"  >

            <p:ajax event="select"  listener="#{resumoConsumoBean.carregarResumo()}" update="?"/> 

            <p:treeNode id="treeNode" icon="ui-icon-contact">
                <h:outputText value="#{node}" id="lblNode"/>
            </p:treeNode>
        </p:tree>
        
        

    </h:form>

Essa é a página que possui o form que desejo atualizar.

<h:form id="formResumo"  >
            <h:panelGroup >
                <p:panel style="width: auto; background-color: #fffff6"  >  
                    <h3>Informações de gestão </h3>
                    <p:separator/>
                    <h:panelGrid columns="2">
                        <h:outputText value="Departamento " style="font-weight: bold;"/>
                        <p:inputText value="#{resumoConsumoBean.departamento.departamento}" size="50" readonly="true"  />
                        <h:outputText value="Código CC " style="font-weight: bold;"/>
                        <p:inputText value="#{resumoConsumoBean.departamento.codigoCC}" size="50" readonly="true" />
                        <h:outputText value="Gestor " style="font-weight: bold;"/>
                        <p:inputText value="#{resumoConsumoBean.departamento.gestor}" size="50" readonly="true" />
                    </h:panelGrid>
                </p:panel> 
            </h:panelGroup>
</form>

Alguém sabe como poderia fazer isso?

Fico muito grato!

3 Respostas

jeanmalvessi

No update coloque update=":formResumo" Por ser outro formulário, é preciso ter os dois pontos na frente do nome!

novellietibr

Coloque um id no seu panelGrid do formResumo e chame assim:

&lt;p:ajax event="select"  listener="#{resumoConsumoBean.carregarResumo()}" update=":formResumo:idPanelGrid"/&gt;
prog.tiago

Olá amigos,

Obrigado, mas não funcionou.

Consegui fazer o update. Usei o firebug para ver qual o nome que o componente estava recebendo.

Ficou assim:

<p:ajax event="select"  listener="#{resumoConsumoBean.carregarResumo()}" update=":j_idt33:formResumo:pnlInformacoes"/>

Percebam o :j_idt33. Não sei de onde ele saiu. Alguém consegue explicar??

Abraços

Criado 23 de agosto de 2012
Ultima resposta 24 de ago. de 2012
Respostas 3
Participantes 3