IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

[Richfaces] Comment trier une colonne en ignorant systématiquement les valeurs nulles?


Sujet :

JSF Java

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Points : 172
    Points
    172
    Par défaut [Richfaces] Comment trier une colonne en ignorant systématiquement les valeurs nulles?
    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 :
    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>
    Le ContactDataModel travaille avec une classe toute simple avec des types de base (String, int, double)

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Et qu'est ce qui t'oblige à avoir des types primitifs comme type de tes colonnes? tu peux avoir Integer et Double les classes à la place de tes types primitifs utilisés.

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Points : 172
    Points
    172
    Par défaut
    Je ne maîtrise pas le modèle, malheureusement. Donc je ne peux pas grand chose aux types primitifs.
    Je pourrais travailler avec une copie mais c'est bien là que je sens venir l'usine à gaz dont j'aimerais me garder.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/07/2006, 14h28
  2. Comment trier une DBGRID en cliquant sur une colonne
    Par sessime dans le forum Bases de données
    Réponses: 8
    Dernier message: 09/10/2004, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo