J'étudie tomahawk, je veux juste savoir si je génère une datatable en utilisant <t:columns>
puis comment trier le dataTable sur le clic sur l'en-tête de cette colonne particulière, comme nous utilisons <t:commandSortHeader>
en <t:column>
attribut normal. Aide aimablement.Comment faire pour trier une table de données si nous utilisons <t:columns> dans JSF?
Répondre
Une possibilité est d'utiliser le tri par plug-in jQuery. Regardez here
L'autre est d'utiliser t: dataTable avec t: commandSortHeader que vous avez décrit
<t:dataTable
id="data"
value="#{BACKINGBEAN.DATA}"
var="item"
...
sortable="true"
rows="10">
à l'aide: DATATABLE vous ne avez pas vraiment besoin du t: commandSortHeader, à moins que vous voulez personnaliser la propriété à trier.
Voici ce que vous devez obtenir ce travail:
<h:form>
<t:dataTable
id="data"
value="#{BACKINGBEAN.DATA}"
var="item"
sortColumn="#{BACKINGBEAN.sortColumn}"
sortAscending="#{BACKINGBEAN.sortAscending}">
...
<t:column defaultSorted="true" sortable="true">
<f:facet name="header">
<h:outputText value="header text"/>
</f:facet>
<h:outputText value="#{item.property}" />
</t:column>
...
</t:dataTable>
</h:form>
Ensuite, dans votre backing bean:
private String sortColumn;
private boolean sortAscending;
avec les getters/setters/lombok par défaut. Ils sont juste pour que la balise puisse définir des données.
Ceci est une excellente référence: http://wiki.apache.org/myfaces/Working_with_auto_sortable_tables
Mais il manque la discussion sur les propriétés des fèves de support, plus qu'il doit être enveloppé dans un <h:form>
même si vous n'avez pas des éléments de formulaire.
L'apache-wiki ne mentionne pas non plus que cela ne fonctionnera pas lorsque votre bean est' @ RequestScoped' – Joost
merci d'avoir dit la possiblité dans jQuery, mais je voulais essayer sans cela, mon doute est comme si même si si dans le il était trié selon la première colonne seulement, et non avec respectifs de la colonne individuelle. –
Hariharbalaji
Oui, vous avez raison. Vous aurez besoin de faire cela sur le côté SQL avant de récupérer la liste est ma conjecture. Vous devez 'order by some1 some2' –