reRender em modalPanel

5 respostas
F

Já pesquisei em vários lugares mas não encontrei a resposta para minha duvida, estou tentando dar reRender em uma a4j:mediaOutput a partir de um a4j:commandButton que está num rich:modalPanel mas não está funcionando de jeito nenhum.

A pergunta é tem alguma limitação ou regra ao chamar o reRender a partir de um rich:modalPanel?

5 Respostas

Kanin_Dragon

Jovem,
Posta o seu código para analisarmos.

abs,

F

Blz
Página do Modal

<ui:composition id="Img" xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:a4j="http://richfaces.org/a4j"
                xmlns:rich="http://richfaces.org/rich">

    <rich:modalPanel id="AddImagem" width="700" height="450">
        <f:facet name="header">
            <h:panelGroup>
                <h:outputText value="Imagem Cliente"/>
            </h:panelGroup>
        </f:facet>
        <f:facet name="controls">
            <a4j:commandButton image="/imagens/fechar.gif" onclick="Richfaces.hideModalPanel('AddImagem');"/>
        </f:facet>
        <a4j:form id="formImagem">
            <f:view>
                    <h:panelGrid columns="2" columnClasses="top,top">
                        <rich:fileUpload fileUploadListener="#{cadastroMB.listener}"
                                         maxFilesQuantity="1"
                                         id="upload"
                                         immediateUpload="#{false}"
                                         acceptedTypes="jpg" allowFlash="#{false}">
                            <a4j:support event="onuploadcomplete" reRender="info" />
                        </rich:fileUpload>
                        <h:panelGroup id="info">
                            <rich:panel>
                                <f:facet name="header">
                                    <h:outputText value="Imagens" />
                                </f:facet>
                                <rich:dataGrid value="#{cadastroVisitanteMB.files}"
                                               var="file" rowKeyVar="row">
                                    <a4j:mediaOutput  element="img" mimeType="image/jpeg"createContent="#{cadastroVisitanteMB.paint}" value="#{row}"cacheable="false"/>
                                </rich:dataGrid>
                                <a4j:commandButton action="#{cadastroMB.clearUploadData}"
                                                   reRender="info, upload" value="Remover Imagens"/>
                            </rich:panel>

                        </h:panelGroup>
                    </h:panelGrid>
                <a4j:commandButton action="#{cadastroVisitanteMB.salvarImagem}" onclick="Richfaces.hideModalPanel('AddImagem');"
                                   value="Salvar Imagens" ajaxSingle="true" immediate="true" reRender="ImagensUS"/>

            </f:view>
        </a4j:form>
    </rich:modalPanel>
</ui:composition>

Pagina principal

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:rich="http://richfaces.org/rich">
    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    </head>
    <rich:panel id="Principal">
        <f:view>
            <h:form id="form" prependId="false">
                <rich:panel id="ImagemCliente">
                    <a4j:outputPanel>
                        <a4j:mediaOutput element="img" mimeType="image/jpeg" rendered="true"
                                         createContent="#{cadastroMB.paint}" value="#{fileImg}"
                                         cacheable="false"  session="false">
                        </a4j:mediaOutput>
                    </a4j:outputPanel>
                    <a4j:commandLink oncomplete="Richfaces.showModalPanel('AddImagem');">
                        <h:outputText value="Adcionar Imagem"/>
                    </a4j:commandLink>
                </rich:panel> 
            </h:form>
        </f:view>
    </rich:panel>
</ui:composition>

Cara Também estou usando jsf 1.2, Richfaces 3.3 e facelets.

Kanin_Dragon

Jovem,
Aparentemente o seu código está correto.

A unica coisa coisa que não entendi foi o atributo immediate=“true” no botão, tira este atributo e ver o que acontece.

<a4j:commandButton action="#{cadastroVisitanteMB.salvarImagem}" onclick="Richfaces.hideModalPanel('AddImagem');"  
                                   value="Salvar Imagens" ajaxSingle="true" immediate="true" reRender="ImagensUS"/>

abs,

F

Valeu pela ajuda Kanin Dragon, eu já retirei o immediate mas ainda não funcionou.
Alguem poderia me explicar se o reRender em um modal tem alguma diferença?

F

Pessoal atualiza a imagem quando seu valor é mudado, eu fiz assim coloque ajaxRendered=“true” num a4j:outputPanel que engloba a imagem, quando é feito o upload de uma nova imagem a imagem principal é atualizada,
mas isso só funciona no Firefox mas no Ie não.
Alguem tem alguma ideia do que possa ser?

Criado 3 de maio de 2011
Ultima resposta 4 de mai. de 2011
Respostas 5
Participantes 2