2016-09-02 3 views
0

Ich habe eine große Tabelle (5 Spalten x 116k Zeilen) mit Bevölkerungszahlen.
Ich muss die Spalte mit der Population summieren und diese Summe ändert sich mit den angewendeten Filtern.
z.B. Ich könnte eine Postleitzahl in den Filter eingeben und ich brauche die Summe der Bevölkerung für diese bestimmte Postleitzahl.
(Ich bin das Hauptfilter + die Multi Filter pro Spalten https://datatables.net/examples/api/multi_filter.html)datatables Summenwerte jeder Zeile mit Paging

Ich habe versucht, die Summe api mit: https://datatables.net/plug-ins/api/sum()

Es funktioniert, aber es gibt nur die Summe der sichtbaren Zeilen.
Wie kann ich die Summe aller Zeilen erhalten, außer die herausgefiltert, wenn ich etwas in die Suchfelder eintippe?

Ich habe auch versucht, die Fußzeile Callback-Methode https://datatables.net/examples/advanced_init/footer_callback.html
Es funktioniert auch, aber das gleiche Problem: nur die Summe der sichtbaren Zeilen, nicht andere Seiten.

Ich würde lieber die zweite Methode (Footer Callback) verwenden, wenn möglich, es ist alles an einem Ort, einfacher imo zu pflegen.

Danke!

+0

serverseitige oder clientseitige Datentabellen? – markpsmith

+0

Client-Seite, pure JavaScript, statische Website –

Antwort

1

ich es endlich gefunden

Sie haben {'search': 'applied'} zu verwenden, in .column()

In https://datatables.net/examples/advanced_init/footer_callback.html

ersetzen

.column(4, { page: 'current'}) 

mit

.column(4, {'search': 'applied'}) 

So:

// Total over the search 
searchTotal = api 
    .column(4, {'search': 'applied'}) 
    .data() 
    .reduce(function (a, b) { 
     return intVal(a) + intVal(b); 
    }, 0); 
0

Um alle Werte unter Verwendung einer Tabelle "datatables" zu sammenzufassen, die serverseitiges Paging ist, müssen Sie view all von view dropbox angeben und diesen Wert abrufen, wenn alle angezeigt werden.

Sie können die view all Funktionalität Implementierung in this link finden.

ODER

andere Ajax-Service-URL Geben Sie, dass die Gesamtsumme zurückgibt, weil der Hauptzweck der Datentabellen ist, Daten in einem gut strukturierten Form darstellen, nicht alle Werte zu summieren.

+0

Ich kann nicht die Ansicht alle Funktionen verwenden, weil zu viele Zeilen. hat bereits versucht, das Paging zu deaktivieren, aber das verlangsamt die Seite bis zu dem Punkt, an dem sie unbrauchbar ist. –

+0

Also mein anderer Vorschlag ist, eine andere Service-URL zu generieren, die die Gesamtsumme zurücksendet. Sie wissen, dass Databases nur Daten in einer gut strukturierten Form darstellen soll. – webmaster

Verwandte Themen