Pessoal, estou com um probleminha chato de resolver
Tenho um formulario com um campo required=true, ao lado tenho um botão que quando clico
ele abre um popup, dentro deste popup o usuario faz a procura do produto e clica em um para selecionar
ai vem o problema, eu mando atualizar o campo para que exiba o produto selecionado
mas o campo aparece vermelho por causa do required=true
ja tentei o immediate e nada
alguma dica
igor_ks
Dezembro 27, 2012, 1:59pm
#2
Humm, com immediate deveria funcionar…
posta seu codigo aqui pra nos, dentro das tags [code]
vou dar uma resumida nele rsrs
<h:form id="form">
<p:messages />
<h:panelGrid columns="4">
<h:outputLabel value="Produto: " for="produto"/>
<p:autoComplete id="produto" size="50" completeMethod="#{vendaManager.preencherProduto}" required="true"
forceSelection="true" var="p" itemLabel="#{p.descricao}" itemValue="#{p}" converter="produtoConverter" value="#{vendaManager.produto}" >
<p:ajax event="itemSelect" listener="#{vendaManager.selecionarProduto}"/>
</p:autoComplete>
<p:commandButton icon="ui-icon-search" oncomplete="dlgProduto.show()"/>
<h:panelGroup>
<p:spacer width="200" height="1"/>
<p:commandLink value="Componentes" update="@(#formularioComponente)" oncomplete="dlgComponente.show()"/>
<p:spacer width="30" height="1"/>
</h:panelGroup>
</h:form>
<p:dialog position="top" modal="true" width="900" height="300" widgetVar="dlgProduto" id="dlgP" header="Pesquisar Produto">
<h:form id="formulario" >
<p:growl closable="true" severity="info" id="info"/>
<p:messages closable="true" severity="fatal,error"/>
<h:panelGrid columns="4">
<h:outputLabel for="codigo" value="Código: "/>
<p:inputText id="codigo" value="#{produtoManager.codigo}" style="width:150px"/>
<h:outputLabel for="descricao" value="Descrição: "/>
<p:inputText id="descricao" value="#{produtoManager.descricao}" style="width:300px"/>
<h:outputLabel for="ean" value="EAN: "/>
<p:inputText id="ean" value="#{produtoManager.ean}" style="width:150px"/>
<h:outputText value=""/>
<h:panelGroup>
<p:spacer height="1" width="100"/>
<p:commandButton icon="ui-icon-search" value="Pesquisar" style="width:103px" update="cadastros" action="#{produtoManager.pesquisar}"/>
</h:panelGroup>
</h:panelGrid>
<p:spacer height="10"/>
<p:separator/>
<p:spacer height="10"/>
<p:dataTable value="#{produtoManager.produtos}" var="produto" emptyMessage="Nenhuma informação encontrada!" id="cadastros"
paginator="true" rowsPerPageTemplate="5,10,15" rows="5">
<p:column style="width:100px">
<f:facet name="header">Chave</f:facet>
<h:outputText value="#{produto.chave}"/>
</p:column>
<p:column style="width:100px">
<f:facet name="header">Código</f:facet>
<h:outputText value="#{produto.codigo}"/>
</p:column>
<p:column>
<f:facet name="header">Descrição</f:facet>
<h:outputText value="#{produto.descricao}"/>
</p:column>
<p:column style="width:100px; text-align:center" rendered="#{cc.attrs.selecionar}">
<f:facet name="header">Selecionar</f:facet>
<p:commandLink action="#{vendaManager.selecionarProdutoPopup}" oncomplete="dlgProduto.hide()" update=":formularioPedido:produto" partialSubmit="true">
<h:graphicImage library="imagem" name="visualizar.jpg" style="border:0px" width="15" height="15"/>
<f:setPropertyActionListener target="#{vendaManager.chaveProduto}" value="#{produto.chave}" />
</p:commandLink>
</p:column>
</p:dataTable>
</h:form>
</p:dialog>
Coloca o botão como type=“button”
Não eh botão é um <p:commandLink>
“ao lado tenho um botão que quando clico
ele abre um popup”
rs…
no commandLink, coloca process="@this "
ah entendi, o link do popup…
mas faz isso, process="@this "
tentei tbm e nada rsrs tenso aki
rs
Qual o campo q fica vermelho?
o <p:autocomplete id=“produto”>
É essa campo que estou mandando atualizar
troca
<p:commandLink action="#{vendaManager.selecionarProdutoPopup}" oncomplete="dlgProduto.hide()" update=":formularioPedido:produto" partialSubmit="true">
por:
<p:commandLink action="#{vendaManager.selecionarProdutoPopup}" oncomplete="dlgProduto.hide()" update=":formularioPedido:produto" process="@this">
Ainda não cara, continua querendo validar o campo produto
mais alguma coisa???
Não sei se vai fazer diferença, mas o nome do formulário está errado. Você está mandando atualizar :formularioPedido:produto e o nome dele é form . Veja se não faz diferença.
O que abre o dialog, coloca process="@this " se for link ou type=“button” se for botao e n precisar de update
Assim, isso ai foi de tanto tentar aki, que acabei escrevendo errado, mas aki os nomes estão certinhos
vlw jow
Faz isso q resolve… o problema é o que está abrindo o dialog
Só a título de curiosidade, tente remover o código:
<p:ajax event="itemSelect" listener="#{vendaManager.selecionarProduto}"/>
Veja se não é ele quem está causando problemas.
Arthur não funfou não
Marcelo funfouuuuuuuu!!!
Vou fazer mais uns testes para ver se não da zica
vlw meu brother
bem funcionou do jeito que o marcelo falou, so me ficou outra duvida
agora, na hora de eu salvar esse formulario, tem uns campos required=true que não precisa validar,
se eu colocar immediate no botão nenhum valida, eu tentei usar o process mas não deu certo
alguem ja precisou disso???
Se não precisa validar tira o required…