Bonjour,

J'utilise JSF + Facelets + RichFaces. J'affiche un tableau de type rich:column avec tri + filtre. Ceci fonctionne très bien.

Mon problème vient du fonctionnement du filtre.

Voici le code du tableau :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<rich:dataTable value="#{UsersManager.users}" var="user" reRender="footer">
       <d:datatable.header entity="#{user}" fieldName="Liste des utilisateurs" backingBean="#{UsersManager}" />
       <d:datatable.column entity="#{user}" fieldName="prenom" backingBean="#{UsersManager}" />
       <d:datatable.column entity="#{user}" fieldName="nom" backingBean="#{UsersManager}" />
       <d:datatable.footer />
</rich:dataTable>
Et ci-dessous le code du composant datatable.column :
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
 
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
 
    <rich:column sortBy="#{entity[fieldName]}" filterBy="#{entity[fieldName]}" filterEvent="onkeyup">
        <f:facet name="header">
            <h:outputText value="#{fieldName}"/>
        </f:facet>
        <h:outputText value="#{entity[fieldName]}"/>
    </rich:column>       
</ui:composition>
Ce composant est fait pour pouvoir être appelé de façon générique.

Je l'appel donc 2 fois succèssive : pour la colonne "prenom" puis pour la colonne "nom".

--> Le problème est que le filtre de chaque colonne filtre sur la dernière colonne créée, à savoir le nom.
Plus précisement, le filtre de la colonne nom filtre sur nom. Le filtre de la colonne prenom filtre également sur nom...

Si vous avez une idée...

Merci !