Bonjour,

J'utilise un SubTable du framework Primefaces, avec champs de saisie.

A la saisie d'une quantité, je souhaite tout simplement mettre à jour le total HT = Prix * Quantité.

Par exemple si le prix est de 100 et la quantité saisie de 5, je souhaite afficher un total = 500.

Rien de plus basic me direz-vous ... mais j'ai essayé de multiples combinaisons avec Ajax, mais rien ne fonctionne

Si quelqu'un peut m'aider à sortir de ce problème, je lui suis infiniment reconnaissant

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 <p:subTable id="produit" var="pro" value="#{cat.listeProduit}" >
                <f:facet name="header">
                    <h:outputText value="#{cat.nomCategorie}" />
                </f:facet>
                <p:column>
                    <h:outputText style="margin-left: 25px" value="#{pro.nomProduit}" />
                </p:column>

                <p:column style="text-align:right">
                    <h:outputText value="#{pro.prixProduit}">
                        <f:convertNumber pattern="###,###,###,##0.00"/>
                    </h:outputText>
                </p:column>

                <p:column>  
                    <p:inputText id="quantite" value="#{pro.quantiteProduit}">  
                        <p:ajax event="keyup" update="totalht" listener="#{catalogManagerBean.quantiteSaisie(pro)}" />
                    </p:inputText> 
                </p:column> 
                
                <p:column>  
                    <h:outputText id="totalht" value="#{pro.totalHTProduit}"/>  
                </p:column>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
public void quantiteSaisie(Product p) {
 
        p.setTotalHTProduit(p.getPrixProduit() * p.getQuantiteProduit());
    }