Bonjour,

Je cherche à faire des édition dans une datatable, pour ce faire, rien de bien compliqué je fais:

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
                    <p:dataTable value="#{PaysController.listePays}" var="pays" paginator="true" rows="30">
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="CodeIsoPays"/>
                            </f:facet>
                            <h:outputText value="#{pays.codeIsoPays}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Pays" />
                            </f:facet>
                            <h:inputText value="#{pays.pays}"/>
                        </p:column>
                        <p:column>
                            <h:commandButton action="#{PaysController.editer}" value="Editer"/>
                        </p:column>
                        <p:column>
                            <h:commandButton value="Supprimer" action="#{PaysController.supprimer}" onclick="if (!confirm('Supprimer #{pays.pays} ?' )) return false" />
                        </p:column>
                    </p:dataTable>
(p: est la librairie primeface, mais cela ne joue pas un rôle car le fonctionnement est identique avec h:datatable)

Ce que j'aimerais c'est lorsqu'il y a une édition, c'est pouvoir récupéré l'ancienne valeur dans un beans et la nouvelle via getRowData.

Pour le moment ce que je fais, c'est que je fais une copie de ma liste avant, et je récupère le nouveau bean via getRowData, pour l'ancienne valeur je dois aller a l'index de ma copie (que j'ai récupéré via getIndexData) et récupéré mon bean ainsi.

Est-ce la meilleure solution? ou existe-il quelque chose de plus propre?

Baltak