Ich habe Probleme mit einem winzigen Detail beim Einfügen der Summenwert jeder Spalte mit der Klasse "Summe" in die Fußzeile.DataTables.net Tabellenspalte Summe in Fußzeile
Der Code (mehr oder weniger direkt aus DataTables.net genommen) geht:
var table = $('#example').DataTable();
table.columns('.sum').each(function (el) {
var sum = table
.column(el)
.data()
.reduce(function (a, b) {
return parseInt(a, 10) + parseInt(b, 10);
});
$(el).html('Sum: ' + sum);
});
"Summe" hat den richtigen Wert, ist aber irgendwie nicht in die Fußzeile eingefügt! I.e. Sein Element erscheint leer.
Beachten Sie, dass das Snippet unten funktioniert, aber ich möchte jede Spalte mit Klassensumme zusammenfassen.
var table = $('#example').DataTable();
var column = table.column(4);
$(column.footer()).html(
column.data().reduce(function (a, b) {
return parseInt(a, 10) + parseInt(b, 10);
})
);
///////////////////////////////////// ///////////////////////////////////////////////////
EDIT - Problemumgehung:
Ich habe den Code an die Stelle der DataTable verschoben und ging stattdessen mit footerCallback. Im folgenden sehen Sie den Code ein:
"footerCallback": function (row, data, start, end, display) {
var api = this.api(), data;
// Remove the formatting to get integer data for summation
var intVal = function (i) {
return typeof i === 'string' ?
i.replace(/[\$,]/g, '') * 1 :
typeof i === 'number' ?
i : 0;
};
// Total over this page
pageTotal = api
.column('.sum', { page: 'current' })
.data()
.reduce(function (a, b) {
return intVal(a) + intVal(b);
}, 0);
// Update footer
$(api.column('.sum').footer()).html(pageTotal);
}
Irgendwie jetzt der Wert in das rechte tfoot Element eingesetzt ist. Immer noch keine Ahnung, warum es überhaupt nicht funktionieren würde (aber wie in der Kommentarreihenfolge erwähnt wurde, hätte JS-Dateien auch etwas damit zu tun haben können).
Jetzt muß ich nur, um herauszufinden, wie mehrere Spalten in einer Schleife mit class = „sum“ ...
Erstellen Sie eine JS Geige und teilen Sie mit uns. –
Etwas wie dieses: http://jsfiddle.net/d49c8jLL/ – skepnaden
Kann etwas bemerkt haben, das möglicherweise oder nicht relevant sein kann, aber irgendwie ... Scheint, den DataTables Bootstrap js in der falschen Reihenfolge mit JQuery geladen zu haben. (Nach ähnlichen js Fehler: http://stackoverflow.com/questions/26165263/datatables-uncaught-typeerror-cannot-read-property-defaults-of-undefined). Ich habe sie gewechselt und jetzt hat sich das Styling ein wenig verändert, um den Fortschritt anzuzeigen, aber immer noch kein Summenwert im Tfoot-Element irgendeiner Spalte. – skepnaden