Problema com Richfaces 4 e rich:popupPanel

3 respostas
F

Oi pessoal ,tudo bom?

Estou criando uma aplicação utilizando JSF 2.0 e o Richfaces 4, e estou com um problema pra usar o "".

Eu tenho um e quando clico nele ele executa uma ação q é gravar os dados do meu formulario no meu banco de dados, até ai tudo tranquilo, porém queria que ao gravar os dados no banco de dados, ele exibisse uma mensagem dentro de um , porém depois q eu adicionei o componente ele não esta mais executando a ação do , alguém saberia me dizer o pq deste comportamento ou como eu posso fazer pra a ação do commandButton ser executada corretamente?

cadastro_cidade.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"      
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:c="http://java.sun.com/jsp/jstl/core">
    <h:head><title>Curriculo Salesiano</title>
        <link rel="stylesheet" type="text/css" href="css/principal.css" />
        <script type="text/javascript" src="js/jquery-1.5.2.min.js"/>
        <script type="text/javascript" src="js/corTabela.js"/>
        <script language="JavaScript">
        function function1(elem) {                
                var d = elem.childNodes[0].innerHTML;
                var e = elem.childNodes[1].innerHTML;
                var f = elem.childNodes[2].innerHTML;
                //alert("-"+d+"-"+e+"-"+f)
                document.getElementById("FormCidade:itId").value=d;
                document.getElementById("FormCidade:itIdOculto").value=d;
                document.getElementById("FormCidade:somEstado").value=e;
                document.getElementById("FormCidade:itNome").value=f;
        }
        </script>
    </h:head>
    <h:body>

        <div align="center">

            <rich:panel header="Cidade" >
                <h:form id="FormCidade">
                    <h:panelGrid columnClasses="classONE,classTWO" columns="3">
                        <h:outputLabel>ID:</h:outputLabel>
                        <h:inputText id="itId" readonly="true" value="#{gravaCidade.cid_id}"/>
                        <h:outputLabel>&nbsp;</h:outputLabel>

                        <h:outputLabel >Estado:</h:outputLabel>
                        <h:selectOneMenu id="somEstado" value="#{gravaCidade.est_id}">
                            <f:selectItems value="#{listaEstado.suaLista}" var="u" itemLabel="#{u.est_sigla}" itemValue="#{u.est_id}" />
                        </h:selectOneMenu>
                        <h:outputLabel>*</h:outputLabel>

                        <h:outputLabel>Nome da cidade:</h:outputLabel>
                        <h:inputText id="itNome" required="true" value="#{gravaCidade.cid_nome}"/>
                        <h:outputLabel>*</h:outputLabel>
                    </h:panelGrid>
                    <h:inputHidden id="itIdOculto" value="#{gravaCidade.cid_id}"/>
                    <h:commandButton value="Limpar" type="reset" />
                    &nbsp;&nbsp;
                    <h:commandButton action="#{gravaCidade.gravar}" value="Gravar"  >
                        <rich:componentControl target="popup" operation="show" />
                    </h:commandButton>
                    &nbsp;&nbsp;
                    <h:commandButton value="Excluir" action="#{gravaCidade.excluir}" />
                </h:form>
            </rich:panel>

            <rich:popupPanel id="popup" modal="true" resizeable="true" >
                <f:facet name="header">
                    <h:outputText value="Mensagem do Sistema" />
                </f:facet>
                <p>You can also check and trigger events if the use clicks outside of the
                    panel.</p>
                <h:form>
                    <h:commandButton value="OK" action="cadastro_cidade" />
                </h:form>
                <p>In this example clicking outside closes the panel.</p>
                <p><a href="#" onclick="#{rich:component('popup')}.hide()">Hide the panel</a></p>
            </rich:popupPanel>

            <br/><br/><br/>

            <rich:panel header="Pesquisa" >
                <h:form >
                    <h:inputText value="#{listaCidade.cid_nom}" />
                    <a4j:commandButton value="Pesquisar" render="out" action="#{listaCidade.filtrar}"/>
                    <br/><br/>

                </h:form>
                <a4j:outputPanel id="out">
                    <table border="1">
                        <tr>
                            <td>ID</td>
                            <td>Cidade</td>
                            <td>Estado</td>
                        </tr>
                        <a4j:repeat value="#{listaCidade.suaLista}" var="x">
                            <tr onclick="function1(this)" ><td>#{x.cid_id}</td><td style="display: none">#{x.estado.est_id}</td><td>#{x.cid_nom}</td><td >#{x.estado.est_sigla}</td></tr>
                        </a4j:repeat>
                    </table>
                </a4j:outputPanel>
            </rich:panel>
            <h2><a href="inicio.jsf">Retornar a pagina Principal</a></h2>
        </div></h:body></html>

3 Respostas

A

Estou com o mesmo problema, você conseguiu resolver?

F

Eu tinha conseguido resolver, porém eu nem trabalho mais na empresa onde eu usei este codigo, que eu me lembre para resolver a situação eu usei um a4j:commanButoon, mas não me lembro do que mais eu usei para fazer o rich:popupPanel funcionar

A

Resolvi utilizando o oncomplete:

Com o rich:componentControl não deu certo.

Chamar PopUpPanel

<a4j:commandButton
    action="#{chamadoMB.insertRegFlpCapa(chamado)}"
    image="/imagens/ImagensUtilizadas/16x16/view_tree.png"
    title="Inserir Posição de Follow-Up"
    render="panelInserePosicaoFlp"
    oncomplete="#{rich:component('panelInserePosicaoFlp')}.show();">
</a4j:commandButton>

Fechar PopUpPanel

<a4j:commandButton actionListener="#{chamadoMB.saveRegFlp}"
    value="Salvar" render="processosLista,poll"
    oncomplete="#{rich:component('panelInserePosicaoFlp')}.hide();"/>
Criado 2 de maio de 2011
Ultima resposta 19 de jul. de 2012
Respostas 3
Participantes 2