2016-04-22 2 views
1

Ich habe eine Webanwendung, die globalize.js für die Globalisierung verwendet. Ich versuche eine Spalte zu sortieren, die das folgende Format verwendet: "Dienstag, 22" (de-US) oder "Terça-Feira, 22" (pt-BR).Wie "Wochentag, Tag" Format mit DataTable und jQuery mit Internationalisierung zu sortieren?

habe ich diese Code-Block-Test:

jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
    "weekdays-sort-pre": function (a) { 
     return a.replace(/^.+,/, ""); 
    }, 

    "weekdays-sort-desc": function (a, b) { 
     return ((a < b) ? -1 : ((a > b) ? 1 : 0)); 
    }, 

    "weekdays-sort-desc": function (a, b) { 
     return ((a < b) ? 1 : ((a > b) ? -1 : 0)); 
    } 
}); 

Aber es hat nicht richtig sortiert. Eigentlich ist das Ergebnis, das ich bekam können Sie hier sehen:

Screen example

Wer weiß, wie der erste Teil zu ignorieren (Tag der Woche) und nur die Nummern verwenden zu sortieren?

Das Ergebnis Ich mag:

Sunday, 24 
Friday, 29 
Saturday, 30 

Antwort

1

Die Sortier Plugin hat zwei große Probleme:

  1. Es hat zwei desc Implementierungen
  2. Es gibt die Anzahl als
tatsächliche number nicht

Hier ist eine verbesserte Version

jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
    "weekdays-sort-pre": function (a) { 
     return parseInt(a.replace(/^.+,/, "")) //return number 
    }, 
    "weekdays-sort-desc": function (a, b) { 
     return ((a < b) ? -1 : ((a > b) ? 1 : 0)); 
    }, 
    "weekdays-sort-asc": function (a, b) {  //implement asc 
     return ((a < b) ? 1 : ((a > b) ? -1 : 0)); 
    } 
}); 

Und Sie müssen das Plugin natürlich tatsächlich nutzen (nicht ganz klar von der Frage):

var table = $('#example').DataTable({ 
    columnDefs: [ 
    { targets: [0], type: 'weekdays-sort'} 
    ] 
}) 

Demo ->http://jsfiddle.net/kjjsdumc/

Die Internationalisierung-Teil überflüssig ist, da alle Sie müssen eine Zahl aus einer Zeichenfolge extrahieren.

+0

Vielen Dank. Zusätzlich zu dem, was du mir gegeben hast, musste ich das Plugin aktualisieren. Ich hab es jetzt. –

Verwandte Themen