Bonjour,

J'utilise Displaytag pour afficher un tableau qui me présente des objets ayant : un nom, un cout1, un cout2, un cout3, un cout4, un cout total et le nombre désiré de cet objet.

En dessous de ce tableau j'affiche un autre tableau qui doit me présenter la somme des cout1, cout2, cout3, cout4 en fonction du nombre entré dans le champ nombre du tableau précédent (dernière colonne avec un decorator permettant d'afficher un textfield).

Je souhaite donc, lorsque je clique sur un bouton "Mettre à jour" ou mieux quand je fais return dans le textfield nombre, que mon 2eme tableau se mette à jour en fonction des champs nombres. Auriez vous une idée de comment faire ? N'hésitez pas à me dire si vous pensez que ce n'est pas la bonne façon de faire ?


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
 
<s:form method ="post" action="calculerCout">
                <display:table name="listeObjets" class="ResultCout" 
                               defaultsort="6" decorator="cb.twh.data.decorator.EditableNombreDecorator">
                        <display:column property="nom" title="Nom" sortable="true" style="width:80px;"/>
                        <display:column property="cout1" title="Cout1" sortable="true" style="width:80px;"/>
                        <display:column property="cout2" title="Cout2" sortable="true" style="width:80px;"/>
                        <display:column property="cout3" title="Cout3" sortable="true" style="width:80px;"/>
                        <display:column property="cout4" title="Cout4" sortable="true" style="width:80px;"/>
                        <display:column property="coutTotal" title="Cout total" sortable="true" style="width:80px;"/>
                        <display:column property="nombre" title="Nombre" style="width:80px;"/>
                </display:table>
 
                <display:table name="resultCout" class="ResultCout" >
                        <display:column property="coutTotal1" title="CoutTotal1" style="width:80px;"/>
                        <display:column property="coutTotal2" title="CoutTotal2" style="width:80px;"/>
                        <display:column property="coutTotal3" title="CoutTotal3" style="width:80px;"/>
                        <display:column property="coutTotal4" title="CoutTotal4" style="width:80px;"/>
                        <display:column property="coutTotalTotal" title="Total" style="width:80px;"/>
                </display:table>
                <s:submit value = "Mettre à jour" align="left"></s:submit>
            </s:form>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
public class EditableNombreDecorator extends TableDecorator {
 
    public String getNombre() {
        CoutRow coutRow = (CoutRow) getCurrentRowObject();
        return "<input id=\"" + coutRow.getNom() + "\" type=\"text\" name=\"editNombre\" value=\"" 
                + coutRow.getNombre() + "\" size=\"4\" \"></input>";
    }
}