2012-06-08 14 views
5

Ich versuche nur, eine Spalte zu summieren und die Summe am Ende der Tabelle anzuzeigen. Wenn man sich Beispiele anschaut, scheint es, als würde man am besten einen Aggregator verwenden. Allerdings, wenn ich fügen Sie einfach inVerwenden von SlickGrid-Aggregation/Summe einer Spalte

dataView.setAggregators([ new Slick.Data.Aggregators.Sum("value") ], false);

nichts passiert. Ich habe stundenlang versucht, einen einfachen Aggregator basierend auf dem Gruppierungsbeispiel zu erstellen, aber das Gruppierungsbeispiel ist zu komplex, um genau sagen zu können, was ich brauche.

Bearbeiten: Alternative fix: Für jeden anderen suchen ich endete nicht Aggregatoren verwenden. Die Daten sind in Javascript verfügbar, was das Leben viel einfacher macht. Summen können von dort berechnet werden.

Antwort

3

Zunächst einmal bitte beachten Sie, dass die Anzeige der Summe funktioniert nur für die Untersumme (die Untersumme der Gruppe, die Sie haben), glaube ich nicht, dass die Grand Total noch implementiert ist ... Obwohl, wenn Sie die Sub -Total jeder Gruppe haben Sie 3 Codebereich zu definieren, nicht nur 1

1. erklären Sie den Aggregator wie zuvor

dataView.setAggregators([ new Slick.Data.Aggregators.Sum("value") ], false); 

2. getan Sie es (eine Funktion zum anzeigen) befestigen müssen zu Ihrer Spalte auch mit groupTotalsFormatter

var columns = [ 
    ... 
    {id: "cost", name: "Cost", field: "cost", width: 90, sortable: true, groupTotalsFormatter: sumTotalsFormatter} 
]; 

schließlich die Funktion definieren es und Code mit angezeigt werden, was Sie

function sumTotalsFormatter(totals, columnDef) { 
    var val = totals.sum && totals.sum[columnDef.field]; 
    if (val != null) { 
    return "total: " + val; 
    } 
    return ""; 
} 

angezeigt werden soll Wenn Sie eine dieser Linien fehlt, werden Sie nichts angezeigt sehen und das ist normal

+0

Als ich das getan habe, habe ich keine Datenansicht gefunden – H20rider