Valeur recupérée erronée après le tri de HtmlScrollableDataTable
bonjour,
j'ai créé une table HtmlScrollableDataTable dans la quelle je récupère mes données de type Utilisateur , lorsque je sélectionne une ligne et je clique sur "detail" je suis redirigé vers une page où j'ai les détails d'un utilisateur "nom, poste, mail..." , le problème c'est que lorsque je tri ma table "en nom par exemple" , ma table est bien triée , mais la valeur récupérée reste celle initiale par exemple si j'ai au début
nom user 1
nom user 2
nom user 3
après le tri
nom user 3
nom user 2
nom user 1
lorsque je sélectionne user 3 , je récupère les informations de user 1
voilà le code dans mon bean où j'ai déclaré la méthode qui récupère les données sélectionnées
Code:
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
|
private transient HtmlScrollableDataTable utilisateurTable;
public String viewDetailUtilisateur() {
@SuppressWarnings("unchecked")
List<Utilisateur> valueList = (List<Utilisateur>) utilisateurTable
.getValue();
Iterator<Object> keys = utilisateurTable.getSelection().getKeys();
if (keys.hasNext()) {
currentUtilisateur = valueList.get(((Integer) keys.next())
.intValue());
return "modifierUtilisateur";
} else {
return null;
}
}
public HtmlScrollableDataTable getUtilisateurTable() {
return utilisateurTable;
}
public void setUtilisateurTable(HtmlScrollableDataTable utilisateurTable) {
this.utilisateurTable = utilisateurTable;
} |
le code de ma page jsf :
Code:
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
|
<f:view>
<h:form id="mainForm">
<h:panelGrid columns="1">
<rich:scrollableDataTable id="utilisateurTable"
binding="#{utilisateurBean.utilisateurTable}"
value="#{utilisateurBean.utilisateurList}" var="utilisateur"
width="300px" height="280px" >
<rich:column id="code" width="60px" sortable="false">
<f:facet name="header">
<h:outputText value="Code" />
</f:facet>
<h:outputText value="#{utilisateur.codeutilisateur}"></h:outputText>
</rich:column>
<rich:column id="nomutilisateur" width="200px">
<f:facet name="header">
<h:outputText value="Nom" />
</f:facet>
<h:outputText value="#{utilisateur.nomutilisateur}"></h:outputText>
</rich:column>
</rich:scrollableDataTable>
<h:commandButton value="Modifier"
action="#{utilisateurBean.viewDetailUtilisateur}"></h:commandButton>
</h:panelGrid>
</h:form>
</f:view> |