2017-11-14 4 views
0

Numerische Sortierung funktioniert nicht auf meinem Dataset. Also habe ich eine benutzerdefinierte Sortierung vorgenommen, die die ganze Zeichenfolge in Zahl konvertiert und dann basierend darauf sortiert, aber aus irgendwelchen Gründen funktioniert es nicht. Was fehlt mir hier?Einfache benutzerdefinierte Sortierfunktion für jQuery DataTables

$.fn.dataTableExt.oSort["test-desc"] = function (x, y) 
{ 

     x = parseInt(x); 
     y = parseInt(y); 

     if (x < y) 
     { 
      return 1; 
     } 

     return 0; 


}; 

$.fn.dataTableExt.oSort["test-asc"] = function (x, y) 
{ 

    x = parseInt(x); 
    y = parseInt(y); 

    if (x > y) 
    { 
     return 1; 
    } 

    return 0; 

} 

$('table').DataTable({ 
    "pageLength": 300, 
    "bLengthChange": false, 
    "columnDefs": [ 
    { "type": "test", targets: 3 } 
    ] 
}); 

enter image description here

Sowohl Auf- und Absteigen funktionieren nicht richtig. Ich habe überprüft, dass diese Funktionen aufgerufen werden und Zeichenketten korrekt in numerische Instanzen konvertieren.

+0

Für was ich auf dem Bild sehen Sie Parsing Strings zu Nummer (String zu Int), die "A |%:" enthält? –

+0

Ja, was auch immer in der Zelle ist, wird geparst. Dazu gehören auch div-Tags. – Waleed

Antwort

0

Die jQuery DataTable-Sortierfunktion gibt nicht 1 und 0 zurück. Stattdessen geben sie 1 und -1 zurück. Durch die Änderung der Sortierfunktion funktionierten sie perfekt.

$.fn.dataTableExt.oSort["test-desc"] = function (x, y) 
    { 

     x = parseInt(x); 
     y = parseInt(y); 

     if (x > y) 
     { 
      return -1; 
     } 

     return 1; 

    }; 

    $.fn.dataTableExt.oSort["test-asc"] = function (x, y) 
    { 

     x = parseInt(x); 
     y = parseInt(y); 

     if (x > y) 
     { 
      return 1; 
     } 

     return -1; 
    } 
Verwandte Themen