سؤال

I have a jsf page that adds an order from a client.
All works fine except when I click the commandLink to show the p:dialog to add a new client the update on the "reste" inputtext stop working (even if I close the p:dialog without adding the new client) :

Clients List :

<strong>Client :</strong><
<p:autoComplete
   id="client"
   value="#{venteSolaireBean.client}"
   completeMethod="#{venteSolaireBean.autocompleteClient}"
   var="item"
   itemLabel="#{item.nom} #{item.prenom}"
   itemValue="#{item}"
   converter="#{venteSolaireBean.clientConverter}"
   dropdown="true" 
   scrollHeight="200" >
</p:autoComplete>

Link to a p:dialog to add a new Cleint :

<p:commandLink onclick="dlgClient.show()" immediate="true">
   <img src="images-main/add-icon.gif" border="0" alt="Add Client" class="img-action"/>
</p:commandLink>

Three p:inputtext items with ajax behavior :

<strong>Montant :</strong>
<p:inputText value="#{venteSolaireBean.venteSolaire.montant}">
    <p:ajax event="keyup" update="reste" listener="#{venteSolaireBean.calcul}" />
</p:inputText>

<strong>Avance :</strong></td>
<p:inputText value="#{venteSolaireBean.venteSolaire.avance}">
    <p:ajax event="keyup" update="reste" listener="#{venteSolaireBean.calcul}" />
</p:inputText>

<strong>Reste :</strong></td>
<p:inputText id="reste" value="#{venteSolaireBean.venteSolaire.reste}">
</p:inputText>

The venteSolaireBean.calcul function to execute with the listener :

public void calcul() {
    venteSolaire.setReste(venteSolaire.getMontant() - venteSolaire.getAvance());
}

I checked by logging the calcul() function and I'm sure it was invoked and the value giving to setReste() is correct.

I don't see why inputtext didn't update.
please help.

هل كانت مفيدة؟

المحلول

I think that there are some problems with the validation. As immediate=true often leads to such problems and you are not using any primefaces-functionality on the button to show the dialog, you should replace the p:commandButton with a plain HTML button to show the "add client"-dialog.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top