Bonjour,
Voilà je voudrais savoir s'il existe un moyen dans le composant datatable de richfaces, pour afficher des valeurs distinctes d'une colonne, comme pour le "SELECT DISTINCT" de SQL.
Merci :P
Version imprimable
Bonjour,
Voilà je voudrais savoir s'il existe un moyen dans le composant datatable de richfaces, pour afficher des valeurs distinctes d'une colonne, comme pour le "SELECT DISTINCT" de SQL.
Merci :P
Non, c'est à toi de l'implémenter (en triant tes résultats), ou alors il te faut utiliser l'extendedDataTable qui propose une fonctionnalité de regroupement de lignes en fonction d'une colonne. Il te suffit de cliquer sur le petit icone "flèche vers le bas" dans l'entête d'une colonne (bon, leur exemple est total pourri pour ça, car tu ne peux regrouper que sur 2 colonnes dont les valeurs sont uniques, mais bon, tu peux quand même jouer avec).
non masi tu peux le faire dans le java, en construisant la liste, soit tester si l'objet existe dans la liste avant de l'ajouter, soit en utilisant une une collection de type Map ou Set. HashSet par exemple.
Bonjour, et merci de me répondre.
la solution de Sniper m'interesse, est ce que tu peux me détailler l'utilisation d'une collection Map ou HashSet.
merci
Ce que dit Sniper, c'est qu'en utilisant une Set<?>, cette structure ne peut pas stocker de doublons, c'est-à-dire qu'elle ne contiendra pas deux éléments sur lesquels la méthode equals retournera true. Donc effectivement, si tu crées une table avec un Set, tu n'auras pas de doublons dans ton tableau.
La question est de savoir ce que tu souhaites faire exactement.
Dans mon exemple, tu affiches initialement une table "normale" avec éventuellement des doublons. La fonctionnalité qu'ajoute l'extendedDataTable est de regrouper selon les valeurs d'une colonne les mêmes lignes. Donc tu pourras par exemple regrouper les valeurs de la colonne 1 ou encore de la colonne 2. Ce regroupement se fait par une action de l'utilisateur. C'est un regroupement dynamique.
La solution de Sniper fait que ta table sera toujours regroupée selon un seul et unique critère (ou un ensemble de critères, selon ton implémentation d'equals). Donc ici, tu n'auras pas de flexibilité.
Reste donc à savoir ce que tu cherches à faire...
Justement je en veux pas que l'utilisateur fasse ce travaille, ça doit être transparent, donc je vais voir avec l'utilisation d'un Set ça peut marcher.
Merci
en faite j'ai trouvé une solution pour utiliser une liste et un set. Je remplie la liste avec seulement les valeurs qui s'insère correctement dans le Set (qui retourne true lors de l'appel à la fonction add) comme ça j'obtiens un datamodel avec des valeurs distinctes à partir de la liste.
Merci de m'avoir aidé