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:
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
}
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? –
@JasperdeVries siehe Bearbeiten. – ITguy
Wie geht das in Ihrer Abfrage? Sie werden das Problem wahrscheinlich dort finden. –