Bonjour,
Je suis face à un problème gênant avec le rowEditListener d'un DataTable.
J'ai un DataTable avec les données générées dynamiquement et qui utilise rowEditor / rowEditListener pour permettre l'édition en ligne.
Fondamentalement, l'édition en ligne ne fonctionne pas si la liste des lignes est recréé à chaque fois (si la liste est statique, alors que tout fonctionne comme prévu).
En effet, la valeur RowEditEvent.getObject() ne contient pas la valeur qui a été édité,
ce qui est pas normale ?!
Sachant que les appels sont effectués à la méthode référencée dans value = "#{bean.codings} et a l'évènement rowEditListener il reçois la colonne que je veux édités dans la méthode onRowEdit ().
Ma logique sur la façon de résoudre ce problème est d'appeler le rowEditListener avant repeupler le DataTable avec les nouvelles valeurs, et non l'inverse (c'est à dire on devrait recevoir un appel d'onRowEdit () avant tout appel à getCodings () a lieu).
Voici la partie pertinente du code:
Merci de m'aidés ça commence a devenir urgant (sa fait déjà un temps que je suis avec ce problème)
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 <p:dataTable id="codings" value="#{bean.codings}" var="row" rowEditListener="#{bean.onRowEdit}"> <p:column> <p:rowEditor/> </p:column> </p:dataTable> public void onRowEdit(RowEditEvent event) { Coding theEditedRecord = (Coding) event.getObject(); save(theEditedRecord); } public List<Coding> getCodings() { List<Coding> codings = new ArrayList<Coding>(); // Populate list of codings return codings; }
Partager