2017-10-18 1 views
1

Aktualisiert mit jsfiddle Sortierung: https://jsfiddle.net/pnnorhtg/Datentabellen Daten mit Mix Zahlen und Buchstaben

Ich habe eine Datentabelle und ich bin eine schwierige Zeit Initialisierung der ‚Zahlen mit html‘ Datentabellen Plug-in https://datatables.net/plug-ins/sorting/num-html habe.

Es ist zunächst auf "Count" DESC sortiert. Sobald ich jedoch meine Funktion ausführe, die HTML modifiziert und an jede Zelle in dieser Spalte anfügt, ist sie nicht mehr sortierbar.

Basierend auf meiner Forschung sollte dieses Plug-In in der Lage sein, dies zu beheben, aber ich habe kein Glück.

Dies ist meine Daten:

var preHtmlData = [{ 
    Brand: "Toyota", 
    Count: 33423, 
    GBV: 242445 
}, { 
    Brand: "Ford", 
    Count: 23558, 
    GBV: 334343 
}, { 
    Brand: "Honda", 
    Count: 9466, 
    GBV: 933455 
}]; 

Diese meine Funktion ist, die durch und Text basiert auf dem Schlüssel zu dem Wert addiert html geht:

//adding text next to Count 
function updateItemCount(preHtmlData) { 
    for(var key in preHtmlData) { 
      var value = preHtmlData[key]; 
      console.log(value) 

    if (value.Brand == 'Toyota') { 
      value.Count = value.Count + ' <div style="font-size: 10px;margin-top: -5px">Toyota Purchases</div>'; 
     } else if (value.Brand == 'Ford') { 
      value.Count = value.Count + ' <div style="font-size: 10px;margin-top: -5px">Ford Purchases</div>'; 
     } else if (value.LOB == 'Honda') { 
      value.Count = value.Count + ' <div style="font-size: 10px;margin-top: -5px">Honda Purchases</div>'; 
     } 
     } 
    } 

Dies ist, was, wo ich Tabelle am Initialisierung :

summary_data_table = $('#resultsTable').DataTable({ 
     "bSort": true, 
     "destory": true, 
     "data": data, 
     "searching": false, 
     "paging": false, 
     "order": [ 
      [aryJSONColTable.length - 1, "desc"] 
     ], 
     "dom": '<"top">t<"bottom"><"clear">', 
     "columnDefs": aryJSONColTable, 
       [ 
       { type: 'natural-nohtml', targets: 5 } 
       ] 
     "initComplete": function(settings, json) { 
      $("#resultsTable").show(); 
     } 
    }); 

Ich habe das Plug-in hinzugefügt und meinen Code wie in der Dokumentation, die ich habe, erstellt Ein Gefühl, wie ich meine columnDefs definiert habe, aber ich brauche es, um aryJSONColTable und die natürliche Sortierung auszuführen.

+0

die falschen '„columnDefs“: aryJSONColTable,' scheint dieses Problem – davidkonrad

Antwort

0

UPDATE

Wie aus Ihrer Geige zu sehen ist, können Sie dieses Problem lösen, indem eine Auftragsart („type“: „natürlich“) Anordnen innerhalb Ihrer benutzerdefinierten Eigenschaften, die Sie columnDefs weitergeben zu

customParams = { 
    "targets": keys.length - 1, 
    "sTitle": "Item Count", 
    "type":"natural" 
} 

Bitte sehen Sie die aktualisierte Geige für die Lösung https://jsfiddle.net/pnnorhtg/1/

+0

dank für Ihre Antwort zu verursachen, habe ich versucht, diese und die Sortierfunktionalität immer noch nicht funktioniert. Sollte ich das Plugin "natural.js" vor der Datei "datatables.js" initialisieren? oder spielt diese Reihenfolge keine Rolle? Im Moment rufe ich das Skript natural.js nach datatables.js auf, aber ich habe beide Möglichkeiten ausprobiert. –

+0

Können Sie jsfiddle pls produzieren, damit wir Ihnen besser helfen können? – MaVRoSCy

+0

hier ist ein jsfiddle https://jsfiddle.net/pnnorhtg/ Hoffe das hilft. Auch wenn es neben dem natürlichen Sortier-Plugin noch eine andere Möglichkeit gibt, würde ich gerne etwas darüber erfahren –

Verwandte Themen