2016-07-11 1 views
0

J'ai un datatable avec colonnes dynamiques, défini par un columnModel. La propriété String lie au champ correct (utilisé pour la sortie de valeur). La chaîne de tri est égale à la propriété, mais certaines colonnes ne devrait pas être sortable, trier est nulle ou emtpy (essayé les deux) là:Colonnes dynamiques pf: colonnes trier des colonnes spécifiques

public class ColumnModel { 
    private String property; 
    private String sort; 
    private int width; 

    //GETTER 
    ... 
} 

J'utilise une liste de modèles que pour créer mes colonnes dynamiques. L'utilisation de la largeur fonctionne bien:

<p:dataTable value="#{bean.items}" var="item" ... > 

    <p:columns value="#{bean.columnModel}" var="column" sortBy="#{column.sort}" width="#{column.width}"> 
     ... 
    </p:columns> 
</p:dataTable> 

Ma question: sortBy ne permet pas une valeur nulle ou une valeur emtpy. Sinon, je reçois une exception d'analyse où il est dit, il ne peut pas analyser # {item.}. primefaces semble ajouter automatiquement 'item' (my var du datatable) avant le champ de tri donné.

Comment certaines colonnes peuvent-elles être ignorées?

Merci pour vos réponses!

Utilisation primefaces 5.0.9 avec wildfly 9.0.2

+0

Essayé une version plus récente PF? Et "je ne peux pas utiliser une version plus récente" n'est pas une réponse correcte ;-). Essayer de voir si elle est résolue dans une version plus récente est toujours possible dans un projet de test simple ([mcve]). – Kukeltje

+0

thx pour votre réponse, dans les premières primaires 5.2 il y a un nouvel attribut pour exactement ce problème. – kaiser

+0

Vous êtes les bienvenus. Vous pouvez créer une réponse vous-même. S'il vous plaît faites comme il pourrait être utile pour les autres – Kukeltje

Répondre

1

Primefaces ajouté de nouveaux attributs pour p:column(s) dans la version 5.1.3 et 5.2.0:

  • triables
  • filtrables

Voici le lien vers le problème résolu:

https://code.google.com/archive/p/primefaces/issues/5021

Exemple selon mon code ci-dessus:

public class ColumnModel { 
    private String property; 
    private boolean sortable; 
    private int width; 

    //GETTER 
    ... 
} 

Avec une donnée List<ColumnModel> columnModel dans le haricot:

<p:dataTable value="#{bean.items}" var="item" ... > 

    <p:columns value="#{bean.columnModel}" var="column" sortBy="#{item[column.property]}" field="#{column.property}" sortable="#{column.sortable}" width="#{column.width}"> 
     ... 
    </p:columns> 
</p:dataTable> 
+0

J'ai modifié ma réponse – kaiser