Bonjour,
je crois que la question est régulièrement posée (mais pas sur ce forum, aussi loin que mes recherches remontent), mais je n'ai pas trouvé de solution satisfaisante.
Donc je tente ma chance ici.
Je dispose d'une Datatable (rich:datatable ou rich:extendeddatatable : j'utilise les deux). Je souhaiterais que lorsque l'utilisateur trie ses données, les valeurs nulles soient toujours à la fin du tri, quelque soit l'ordre du tri.
Il me semble qu'une solution serait d'implémenter l'interface java.lang.Comparable sur chacune de mes données ... mais comme mes colonnes sont des types de base (String, int, double), je ne me vois pas redéfinir pour chacune d'elle une classe dérivée qui implémenterait cette Interface (ce serait une sacré usine à gaz, me semble t'il).
Je ne vois du coup pas trop d'autre solution pour faire celà.... donc si vous avez une idée!
La table :
Le ContactDataModel travaille avec une classe toute simple avec des types de base (String, int, double)
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <rich:dataTable value="#{contact.contactDataModel}" var="varContact" columns="9"> <rich:column sortBy="#{varContact.gender}"> <f:facet name="header"> <h:outputText value="#{bundle.gender}" /> </f:facet> <h:outputText value="#{bundle.gender_m}" rendered="#{varContact.gender == '0'}" /> <h:outputText value="#{bundle.gender_f}" rendered="#{varContact.gender == '1'}" /> </rich:column> <rich:column id="lastnameColumn" sortBy="#{varContact.lastname}"> <f:facet name="header"> <h:outputText value="#{bundle.lastname}" /> </f:facet> <h:outputText value="#{varContact.lastname}" id="lastname" /> </rich:column> <rich:column id="firstnameColumn" sortBy="#{varContact.firstname}"> <f:facet name="header"> <h:outputText value="#{bundle.firstname}" /> </f:facet> <h:outputText value="#{varContact.firstname}" id="firstname" /> </rich:column> ... </rich:dataTable>
Partager