Bonjour,
J'utilise un composant <h:datatable> avec des colonnes triables mais je ne sais pas comment faire pour que mon premier affichage tri ma table en fonction d'un critère particulier.
Est-ce que quelqu'un pourrait m'aider ?
Renaud
Bonjour,
J'utilise un composant <h:datatable> avec des colonnes triables mais je ne sais pas comment faire pour que mon premier affichage tri ma table en fonction d'un critère particulier.
Est-ce que quelqu'un pourrait m'aider ?
Renaud
Apparemment, ça se fait avec tomahawk mais j'aurais préféré trouver une solution avec JSF ou RichFaces...
Avec Richfaces, tu as le composant extended Datatable qui le permet par défaut.
Bon ce n'est pas compatible avec un rich:datatable alors je ne peux pas l'utiliser de toute façon :s.
Extended Datatable ? Je vais voir ça tout de suite !!!
Bon j'ai regardé mais c'est assez confu. Quand tu dis qu'il le permet par défaut, tu veux dire que c'est dans ses options de base ?
Peux-tu me donner un exemple de configuration ? Pourrais-tu me dire s'il est possible de donner a l'exetendedDataTable une apparence de dataTable ? (seul le tri par défaut m'interresse en fait...)
Personne ne saurait me l'expliquer ?
Alors l'extendedDatatable permet de base de faire du tri si tu le précises dans les colonnes :
Pour l'aspect, je ne sais pas trop. Sans doute en jouant avec le CSS (voir la doc complète du composant ici).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <rich:column sortable="true" sortBy="#{...}"> ... </rich:column>
Je n'ai jamais utilisé ce composant. Sur un ancien projet, j'avais créé ma propre table qui étendait la rich:datatable afin de pouvoir :
- utilise mon propre aspect (bon, c'était essentiellement du CSS donc pas la peine de créer un composant rien que pour ça).
- permettre le tri des colonnes.
- permettre la sélection unique ou multiple de lignes.
- inclure automatiquement un équivalent du datascroller (permettre de naviguer entre les pages du tableau) dès que l'on en a besoin.
Mais je tiens à dire que j'en ai galéré pour le faire je déconseille donc, à moins de vraiment maitriser JSF et la création de composants...
Donc personnellement, j'essaierais de bidouiller le CSS afin d'utiliser l'extendedDatatable...
Si tu veux que à l'appariton de ton datatable il soit trié tu devrais plutôt agir sur le "rich:column" et non pas sur le "datatable" ou bien le "extendeddatatable".
il suffit de mettre au niveau de la colonne par laquelle tu veux trié un attribut "sortOrder" comme ceci :
les differents valeurs sont ASCENDING , DESCENDING et UNSORTED.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <rich:column id="idcol" sortOrder="ASCENDING" label="colonne" sortable="true" sortBy="#{bean.colonne}"> <f:facet name="header"> <h:outputText value="Identifiant" /> </f:facet> <h:outputText value="#{bean.colonne}" /> </rich:column>
préviens moi si ça marche.
haskouse, ta solution avait l'air de créer le moins d'impact donc je l'ai testé et... ça marche !!!
romaintaz, je n'ai pas le temps de me plonger dans la création de composants jsf même si un jour je devrais bien m'y coller tôt ou tard (c'est comme de créer des skin richfaces ça).
J'ai réussi à gérer toutes mes autres fonctionnalités avec les outils proposés même si parfois ça en fait du code...
Merci pour votre aide !! Cette affaire est résolue !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager