1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

atualizar combobox com rich:popupPanel

Oi pessoal, a situação é a seguinte: ao clicar em um botão em uma modal (rich:popupPanel) deve salvar o objeto e fechar a modal (já esta fazendo) e atualizar um combobox na pagina principal, porem a parte de atualizar o combo não estou conseguindo fazer atualizar. Alguém pode ajudar? segue o código:

enter code here

<h:body>

    <ui:composition template="/appview/template/layout.xhtml">

        <ui:define name="content">


            <rich:panel alignment="center" >

                <h:messages style="color:red;margin:8px;" />

                 <h1 style="text-align:center">Cadastro de Curso</h1>
                <h:form id="formPrincipal">

                    <h:panelGrid columns="2" columnClasses="coluna1Generica, coluna2Generica">

                        <h:outputLabel value="Sigla:" />
                        <h:inputText value="#{cursoForm.sigla}" style="width:100px" required="true" label="Campo Sigla"/>

                        <h:outputText value="Nome:" />
                        <h:inputText value="#{cursoForm.nome}" style="width:500px" required="true" label="Campo Titulo"/>

                        <h:outputText value="Instituição:" />
                        <a4j:outputPanel columns="3" id="instituicao">
                            <h:selectOneMenu value="#{cursoForm.idInstituicao}" >
                                <f:selectItems value="#{cursoForm.listInstituicao}" required="true" 
                                label="Campo Instituição" var="instituicao" itemValue="#{instituicao.id}" itemLabel="#{instituicao.nome}"/>
                            </h:selectOneMenu>

                            <h:commandButton value="Adicionar instituição" image="../imagem/add.png" title="adicionar Instituição" >
                                <rich:componentControl target="popup" operation="show" />
                            </h:commandButton>

                        </a4j:outputPanel>

                    </h:panelGrid>

                    <h:panelGrid style="width:100%; margin-top: 15px; text-align: center;">
                    <h:panelGroup  >
                        <h:commandButton value="Salvar" action="#{cursoForm.salvar()}" styleClass="button"></h:commandButton>
                        <h:commandButton value="limpar" action="#{cursoForm.limpar()}" styleClass="button"></h:commandButton>
                    </h:panelGroup>
                    </h:panelGrid>

            </h:form>

            <h:form>
             <rich:popupPanel id="popup" modal="true" autosized="true" resizeable="false" domElementAttachment="form">
                        <f:facet name="header">
                            <h:outputText value="Incluir Instituição" />
                        </f:facet>
                          <h:messages style="color:red;margin:8px;" />

                          <h:panelGrid columns="2" id="incluirInstituicao" columnClasses="coluna1Generica, coluna2Generica">
                            <h:outputText value="Sigla:" />
                            <h:inputText value="#{cursoForm.siglaInstituicao}" 
                                required="true" label="Campo Sigla" style="width:100px"/>

                            <h:outputText value="Nome:" />
                            <h:inputText value="#{cursoForm.nomeInstituicao}" 
                                required="true" label="Campo Nome" style="width:550px"/>


                        </h:panelGrid>

                        <h:panelGrid style="width:100%; margin-top: 15px; text-align: center;">
                            <h:panelGroup  >
                            <a4j:commandButton value="Salvar" action="#{cursoForm.cadastrarInstituicao()}" 
                                onclick="#{rich:component('popup')}.hide()" >
                                <a4j:ajax execute="@form" reRender="formPrincipal" />
                                </a4j:commandButton>
                            <a4j:commandButton value="Cancel" onclick="#{rich:component('popup')}.hide()" />
                            </h:panelGroup>
                        </h:panelGrid>    

                    </rich:popupPanel>

            </h:form>

            <h:form>                    

                    <h:panelGrid style="padding-top:20px;">

                        <rich:dataTable value="#{cursoForm.listar}" var="curso"
                             id="table" iterationStatusVar="it" rows="15" style="width: 850px;">

                        <rich:column style="width: 45px;">
                            <f:facet name="header">#</f:facet>
                            #{it.index}
                        </rich:column>

                        <rich:column style="width: 200px;">
                            <f:facet name="header">Sigla</f:facet>
                            <h:outputText value="#{curso.sigla}" />
                        </rich:column>

                        <rich:column style="width: 400px;">
                            <f:facet name="header">Nome</f:facet>
                            <h:outputText value="#{curso.nome}" />
                        </rich:column>


                        <rich:column style="width: 200px;">
                            <f:facet name="header">Instituição</f:facet>
                            <h:outputText value="#{curso.instituicao.nome}" />
                        </rich:column>

                        <rich:column style="text-align: center; width: 45px;">
                            <f:facet name="header">Excluir</f:facet>
                            <a4j:commandLink styleClass="no-decor" execute="@this"
                                render="@none"
                                oncomplete="#{rich:component('confirmPane')}.show()">
                                <h:graphicImage value="../imagem/delete.png" alt="delete" />
                                <a4j:param value="#{it.index}" assignTo="#{cursoForm.currentCursoIndex}" />
                            </a4j:commandLink>

                        </rich:column>

                        <rich:column style="text-align: center; width: 45px;">
                            <f:facet name="header">Editar</f:facet>


                             <a4j:commandLink styleClass="no-decor" render="editGrid" execute="@this"
                    oncomplete="#{rich:component('editPane')}.show()">
                    <h:graphicImage value="../imagem/edit.gif" alt="edit" />
                    <a4j:param value="#{it.index}" assignTo="#{cursoForm.currentCursoIndex}" />
                    <f:setPropertyActionListener target="#{cursoForm.cursoEditado}" value="#{curso}" />
                </a4j:commandLink>



                        </rich:column>

                        <f:facet name="footer">
                            <rich:dataScroller page="#{postagemForm.page}" />
                        </f:facet>

                    </rich:dataTable>

                        <a4j:jsFunction name="remove" action="#{cursoForm.deletar}" render="table" execute="@this"
                        oncomplete="#{rich:component('confirmPane')}.hide();" />

                    <rich:popupPanel id="statPane" autosized="true">
                        <h:graphicImage value="../imagem/config.gif" alt="ai" />
                        Por favor aguarde...
                    </rich:popupPanel>

                     <rich:popupPanel id="confirmPane" autosized="true">
                        Você esta certo que deseja deletar? 
                        <a4j:commandButton value="Cancelar" onclick="#{rich:component('confirmPane')}.hide(); return false;" />
                        <a4j:commandButton value="Deletar" onclick="remove(); return false;" />
                    </rich:popupPanel>


                    <rich:popupPanel header="Editar Curso" id="editPane" domElementAttachment="parent" 
                    width="450" height="170">
                          <h:messages style="color:red;margin:8px;" />

                          <h:panelGrid columns="2" id="editGrid" columnClasses="coluna1Generica, coluna2Generica">
                            <h:outputText value="Sigla:" />
                            <h:inputText value="#{cursoForm.cursoEditado.sigla}" 
                                required="true" label="Campo Sigla" style="width:100px"/>

                            <h:outputText value="Nome:" />
                            <h:inputText value="#{cursoForm.cursoEditado.nome}" 
                                required="true" label="Campo Nome" style="width:320px"/>

                            <h:outputText value="Instituição:" />
                            <h:selectOneMenu value="#{cursoForm.idInstituicaoEditada}">
                                <f:selectItems value="#{cursoForm.listInstituicao}" required="true" 
                                label="Campo Instituição" var="instituicao" itemValue="#{instituicao.id}" itemLabel="#{instituicao.nome}"/>
                            </h:selectOneMenu>

                        </h:panelGrid>

                        <h:panelGrid style="width:100%; margin-top: 15px; text-align: center;">
                        <h:panelGroup  >
                        <a4j:commandButton value="Salvar" action="#{cursoForm.atualizar()}" render="table" execute="editPane"
                            oncomplete="if (#{facesContext.maximumSeverity==null}) {#{rich:component('editPane')}.hide();}" />
                        <a4j:commandButton value="Cancel" onclick="#{rich:component('editPane')}.hide(); return false;" />
                        </h:panelGroup>
                        </h:panelGrid>
                    </rich:popupPanel>

                    </h:panelGrid>

                </h:form>
            </rich:panel>
        </ui:define>
    </ui:composition>
</h:body>
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags jsf ajax richfaces ou faça a sua própria pergunta.