2016-07-29 10 views
0

Ich habe gerade versucht, DataTable.js zu verwenden, wo ich Probleme mit js Arrays von Arrays als Datenquelle gefunden, um die Tabelle zu generieren. Ich habe versucht, etwas zu googlen, das schon einmal gefragt wurde, aber nichts von dem ist hilfreich für mich.jquery dataTable mit js Arrays von Arrays als Datenquelle, dataTable Version 1.10

Die Funktion, die ich tue, ist sehr einfach, ich brauche die Datenquelle dynamisch zu erstellen, 2D-Arrays, wie einfach: screenshot of array

dann eine einfache Tabelle erstellen, indem Sie die oben. Die Funktion Demo vom offiziellen gegeben ist etwa wie folgt:

$('#actionTabDataTable').DataTable({ 
    data: dataSet, 
    columns: [ 
     { title: "1" }, 
     { title: "2" }, 
     { title: "3" }, 
     { title: "4." }, 
     { title: "5 date" }, 
     { title: "6" }, 
     { title: "7" }, 
     { title: "8" } 
    ] 
}); 

Die aktuelle Funktion endete damit, keine Daten zu finden. Hoffe, ich habe mein Problem hier klar gemacht, jeder Vorschlag wäre willkommen!

+0

Das Problem, das ich eigentlich lief in war, dass die Datensätze in der Tabelle verschwunden, wenn ich die Tabelle aktualisiert: Für die Version 1.10, könnten wir so etwas wie verwenden mit "anhängen". Nach der Verwendung von API-Methoden ist alles in Ordnung. –

Antwort

0

Ich benutze 1,9, und ich denke, das würde für diese Version funktionieren. Aber ich sehe, dass die Dinge haben sich geändert, und DataTables 1.9 wird nicht berücksichtigt ‚Legacy‘

$('#actionTabDataTable').dataTable({ 
    'aaData': dataSet, 
    'aoColumns': [ 
     { sTitle: "1", sType: "string" }, 
     { sTitle: "2", sType: "string" }, 
     { sTitle: "3", sType: "string" }, 
     { sTitle: "4.", sType: "string" }, 
     { sTitle: "5 date", sType: "string" }, 
     { sTitle: "6", sType: "string" }, 
     { sTitle: "7", sType: "string" }, 
     { sTitle: "8", sType: "string" } 
    ] 
}); 
+0

Ich habe Ihren Weg versucht und auch meine Datenblätter js & css 1.9 ersetzt. Ich habe immer noch das gleiche Ergebnis, Tabelle wurde ohne irgendwelche Datensätze geladen. Ich frage mich nur, könnte es das Format meines DataSet sein? –

0

Es scheint, als ob Sie die Tabelle richtig initialisiert haben (das ist, wenn Sie die Tabelle mit Kopf- und keine Daten auf dem sehen Seite?). Ich denke, dass Ihre Tabelle initialisiert wird, bevor Ihre dynamisch erstellten Daten vollständig ausgefüllt sind. Um zu sortieren, dass Sie alle Daten löschen müssen und es wie folgt hinzu:

table.clear().rows.add(dataSet).draw(); 

Es ist ein einfacher Fehler in Javascript zu machen, wie Sie nicht, wenn die Dinge garantiert passieren. Ich habe eine einfache JSFiddle aufgearbeitet, die etwas von dem, was ich denke, passiert ist.

Aber im Grunde jedes Mal, müssen Sie die Daten in der Tabelle löschen aktualisieren und die neuen Zeilen hinzufügen und nicht vergessen, es zu ziehen wieder:

var dataSet = []; 
setTimeout(function(){ 
    dataSet.push([ 
    "19", 
    "+0.5", 
    "-", 
    "+0.4", 
    "-0.6", 
    "-0.6", 
    "+0.7", 
    "+0.8" 
    ]); 
    dataSet.push([ 
    "19", 
    "+0.5", 
    "-", 
    "+0.4", 
    "-0.6", 
    "-0.6", 
    "+0.7", 
    "+0.8" 
    ]); 
    dataSet.push([ 
    "19", 
    "+0.5", 
    "-", 
    "+0.4", 
    "-0.6", 
    "-0.6", 
    "+0.7", 
    "+0.8" 
    ]); 
    table.clear().rows.add(dataSet).draw(); 
}, 500); 

var table = $('#actionTabDataTable').DataTable({ 
    "data": dataSet, 
    "columns": [ 
     { "title": "1" }, 
     { "title": "2" }, 
     { "title": "3" }, 
     { "title": "4." }, 
     { "title": "5 date" }, 
     { "title": "6" }, 
     { "title": "7" }, 
     { "title": "8" } 
    ] 
}); 

Hoffnung, das hilft.

0

Die geeignete Methode zum Aktualisieren der Datensätze in der Tabelle wäre die Verwendung von API-Funktionen. Es hängt von der DataTable-Version ab, denke ich.

var t = $('#actionTabDataTable').DataTable(); 

    $("#actionsOutcomeBtn").click(function(){ 

     for(i=0;i<dataSet.length;i++) { 
      t.row.add(dataSet[i]).draw(false); 
     } 


    }) 

Aktualisierung DOM von append, prepend etc würde Probleme verursachen