2016-07-24 4 views
1

Ich verwende diese Datentabelle: https://datatables.net Meine erste Spalte Referenzen wie die enthält: 1.1 oder 1.2.1Datentabelle sortiert nach Referenzen (mit Punkt)

So bin ich nach einer Möglichkeit, die Tabelle nach Referenzen zu sortieren . Ich habe darüber nachgedacht, "." und bekomme die Nummer 11 oder 121, die einfacher zu sortieren ist.

Aber ich weiß nicht, wie kann ich den Punkt aus der richtigen Spalte entfernen (ohne dem Benutzer etwas zu zeigen) und vor dem Sortieren "0" hinzufügen.

Beispiel: Wenn Daten sind: 1.1 1.1.1 1.2.1 1.2 -> 110, 111, 120, 121

Wenn Daten waren: 1,1 2.2.1.1 2,5 -> 1100 2211, 2500

Jede Hilfe wäre zu schätzen :)

Antwort

1

Sie können erreichen, was Sie wollen, durch eine sehr einfach Typ basierte Sortier-Plugin. Mit einem Sortier-Plugin können Sie den Inhalt einer Zelle vor der Sortierung vorverarbeiten, oder Sie können Ihren eigenen Sortieralgorithmus implementieren. Hier brauchen Sie nur die "feste" Nummer zurück zu passieren und dann werden Datentabellen sortieren, wie es Zahlen war:

jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
    "reference-pre": function (ref) { 
    ref = ref.replace(/\./g, '')  //remove dots 
    while (ref.length < 4) ref += '0' //add 0 until length 4 
    return parseInt(ref)    //return as number 
    } 
}) 

Verbrauch:

columnDefs : [ 
    { targets: 0, type: 'reference' } 
] 

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

+0

Es funktioniert gut Danke. Aber ich habe vergessen zu sagen, dass Zahlen in einem Eingang enthalten sind ... Wie: Snooze

+0

@Snooze, Das sollte ein nobrainer sein, verwenden Sie etwas wie 'ref = $ (ref) .val(). ersetzen (/\./ g, '') ', – davidkonrad

Verwandte Themen