Bonjour,

Envoyé par
Mediii
Je connaissait le setPropertyActionListener mais je n'était pas sûre qu'il répondait bien à mon besoin, question néanmoins : est-ce que le fait d'affecter à selectedCar la valeur de la ligne courante et ainsi modifier cet objet va automatiquement mettre à jours la ligne de la datatable ?
Je ne sais pas ce que fait ta méthode action, mais si elle modifie l'objet auqyel elle appartient, oui, la ligne correspondante sera mis à jour lors du reRender de la page.

Envoyé par
Mediii
pour la 1ère méthode quer tu a citer
1. En passant par un dataModel et en récupérant le getRowData();
J'aurais souhaiter si c'est possible un exemple
ps: ma datatable utilise pour valeur une List<>
Il faut attacher l'attribut value du composant dataTable à un javax.faces.model.DataModel au lieu de l'attacher directement à une liste.
Voici la déclaration d'un DataModel dans un managedBean:
private DataModel dataModel = new ListDataModel();
DataModel est une interface tout comme List tandis que ListDataModel est une implémentation tout comme ArrayList.
Il faut ensuite pointer vers dataModel comme value d'une dataTable:
1 2 3 4
| <h:dataTable value="#{monBean.dataModel}" var="x" >
:
:
</h:dataTable> |
Ensuite, suite à un clic sur un commandLink ou un commandButton sur une ligne, et dans l'action appelée, il suffit de faire :
Object o = dataModel.getRowData();
pour récupérer l'objet représenté par la ligne active.
Il faut ensuite le caster vers son type d'origine.
Pour alimenter un DataModel avec une liste (List), on procède comme suit:
dataModel.setWrappedData(uneListeQuelquonque);
Partager