2010-03-26 11 views

Répondre

1

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"> 
+0

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

+0

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' –

2

à 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.

+0

L'apache-wiki ne mentionne pas non plus que cela ne fonctionnera pas lorsque votre bean est' @ RequestScoped' – Joost