Bonjour,
J'ai une DataTable, chaque ligne correspond à un aliment. L'avant dernière colonne est un input et la dernière un commandButton.
Dans l'input, le user peut taper une nouvelle quantité pour l'aliment et appuyer sur le bouton pour valider. J'arrive bien à passer l'id de l'aliment, le problème est au niveau de l'input.
En effet, il est relié à l'attribut 'change' de mon bean. Donc il prend la valeur du dernier input de ma dataTable. Donc ca ne marche que pour la dernière ligne.
model:
controller:
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
24
25
26
27
28
29
30
31
32
33
34
35 <h:form> <h:dataTable value="#{MyManagedBean.alimentList}" var="al" border="1"> <h:column> <f:facet name="header"> <h:outputText value="Nom"/> </f:facet> <h:outputText value="#{al.name}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Quantité"/> </f:facet> <h:outputText value="#{al.quantity}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Modification"/> </f:facet> <h:inputText value="#{MyManagedBean.change}"> </h:inputText> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Envoyer"/> </f:facet> <h:commandButton value="OK" action="#{MyManagedBean.doChange}"> </h:commandButton> </h:column> </h:dataTable> </h:form>
Merci d'avance pour votre aide
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 private Integer change = null ; public String doChange() { Aliment temp = (Aliment) FacesContext .getCurrentInstance().getExternalContext().getRequestMap().get("al"); if(change==0) { alimentEJB.deleteAliment(temp.getId()); } else{ alimentEJB.changeAliment(temp.getId(),this.change); } change = null; alimentList = alimentEJB.findAllAliments(); return "listAliments.xhtml"; }
Partager