Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

ERRO ao update no selectOneMenu

Opa aonde estou errando? na minha classe compra tenho uma lista de produtos dentro do selectonemenu, e eu quero que quando eu escolher o produto ele me trazer os dados do produto com o ajax, estou tentando fazer um teste com um campo, mais ele não esta fazendo isso, oque estou errado?

            <h:form id="formularioCompra">
                <h:panelGrid columns="2">
                    <p:outputLabel value="Produto: " for="produto" />
                    <p:selectOneMenu id="produto" value="#{compraBean.produto}">
                        <f:selectItem itemValue="" itemLabel="Selecionee..." />
                        <f:selectItems value="#{compraBean.listaProdutos}" var="p"
                            itemValue="#{p}" itemLabel="#{p.nome}" />
                        <p:ajax event="change" update="precoT"/>
                    </p:selectOneMenu>
                    <p:outputLabel id="precoT"
                        value="#{produtoBean.produto.precoAVender}" />

                </h:panelGrid>
            </h:form>
        </p:dialog>
2 respostas
solução!

Opa, chegou olhar a documentação da tag do ajax? o event é para eventos no lado cliente, para o lado do servidor, use o listener.

https://www.primefaces.org/docs/vdl/3.5/primefaces-p/ajax.html

Opa, não tinha chegado a ler não, eu resolvi de um jeito com o listener que você mencionou, coloquei um metodo na classe e fiz o el com o listener com o metodo e rolou, só que alberto quando eu coloco o valor desejado da quantidade eu tenho que dar um clic ou apertar enter para auto buscar o metodo, teria algum evento pra usar que automaticamente colocar a quantidade ele me fazer o update sem clicar ou enter?

<p:inputText id="quantidade"
                        value="#{compraBean.compraProduto.quantidade}">
                        <p:ajax listener="#{compraBean.valorTotalCompra}"
                            update="precoTotal" />
                    </p:inputText>
                    <p:outputLabel value="Preço total: " for="precoTotal" />
                    <p:inputText id="precoTotal"
                        value="#{compraBean.compra.precoTotal}" readonly="true" />