2017-04-07 4 views
0

Mein JSF Code zu lösen geht so:Jsf dataTable sortby, ich will (1,2,3,4,10,15), bekomme ich (1,10,15,2,3,4). Wie

<p:dataTable var="result" value="#{timerConfigurationJobList.model}" rows="10" 
         paginator="true" paginatorPosition="bottom" 
         paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}" 
         rowsPerPageTemplate="10,20,50" id="approvalTable" lazy="true">   
       <p:column sortBy="#{result.jobId}"> 
        <f:facet name="header"> 
         <h:outputText value="#{msg['content.jobList.jobId']}"/> 
        </f:facet> 
       </p:column > 
</p:dataTable> 

Das Ergebnis, das ich bekommen, ist dies:

'Wrongly sorted'

Wie in dem Bild zu sehen: '123' höher als ' 2 ',' 4 ',' 7 'und' 9 '. Ich möchte, dass es am Ende kommt, so dass es "numerisch" sortiert ist.

Am mit Java und JSF 2.

Edit: Im faul Modell fand ich diese:

@Override 
    public final List<T> load(int first, int pageSize, String sortField, SortOrder sortOrder, 
      final Map<String, Object> filters) { 

     Map<String, Sort> sorts = new HashMap<>(); 

     if (sortField != null) { 
      if (sortOrder.equals(SortOrder.ASCENDING)) { 
       sorts.put(sortField, Sort.ASC); 
      } else if (sortOrder.equals(SortOrder.DESCENDING)) { 
       sorts.put(sortField, Sort.DESC); 
      } 
      // unsorted can be ignored 
     } 
+0

Sie verwenden Lazy Loading. Sie sollten darauf achten, in Ihrem faulen Modell zu sortieren. Könnten Sie bitte Ihr faules Modell (den sortierenden Teil) teilen? –

+0

@JasperdeVries siehe Bearbeiten. – ITguy

+1

Wie geht das in Ihrer Abfrage? Sie werden das Problem wahrscheinlich dort finden. –

Antwort

0

Es gibt mehrere Möglichkeiten, das Problem zu lösen:

  1. Ändern Sie den Typ Spalte wie von @Kukeltje erwähnt. Nicht sicher, ob Sie das Schema ändern möchten.
  2. Verwenden Sie das sortFunction-Attribut der Spalte, um die benutzerdefinierte Sortierung bereitzustellen.
  3. Übergeben Sie die sortierte Liste der JSF-Komponente.
Verwandte Themen