2016-08-02 7 views
0

Ich benutze EXTJS 4.2.1 und meine Anwendung hat ein Raster mit Paging, die Gruppierung Zusammenfassung und die Zusammenfassung Funktion. Ich möchte die Summe der Zusammenfassungsfunktion außer Kraft setzen, da sie die Gesamtsumme des gesamten Datensatzes anzeigen soll und nicht nur für die aktuell angezeigte Seite. Ist es möglich, die Zusammenfassung zu überschreiben, um dies zu tun?Wie kann ich die Gesamtsumme der EXTJS-Zusammenfassung überschreiben?

Vielen Dank für jede Beratung im Voraus. :-)

+0

Sie müssten die Zusammenfassung serverseitig zählen und sie an den Client senden und die Zusammenfassung einfach zum Anzeigen der Daten verwenden. Ich kann Ihnen nicht mehr sagen, bis ich weiß, welche zusammenfassende Funktion Sie verwenden. – MarthyM

+0

Ich verwende die normale Zusammenfassung für Gitter. Und ich möchte die beiden Spalten zusammenfassen, aber der Paging-Mechanismus scheint die Summe der verschiedenen Seiten nicht zu summieren. Er addiert nur die Spalten auf der aktuellen Seite und liegt auf der nächsten Seite. – F4k3d

Antwort

0

Verwenden Sie summaryRenderer in der Spaltenkonfiguration. Es ist eine nicht-mitgliederte Funktion von ExtJS, mit der Sie benutzerdefinierte Daten in Ihrer Zusammenfassungszeile anzeigen können.

Sie müssen die Daten serverseitig zusammenfassen und sie an den Client senden, wo Sie im summaryRenderer darauf zugreifen.

Wie so:

columns: { 
    items: [ 
     { 
      text: "Column A", 
      dataIndex: "field_A", 
      summaryRenderer: function(value, summaryData, dataIndex) { 
       var grid = this; 

       // Get the value here and return it 
       var result = functionToGetValue(grid); 

       return result; 
      } 
     }, 
     // ... 
    } 
] 

Die functionToGetValue ist der Ort, in dem Sie den Verdichtungs Wert übergeben Sie Ihren Client vom Server gesendet.

Wie Sie das tun, hängt von Ihrem Code ab. Sie haben Zugang zu speichern über grid.getStore().

Es ist möglich, die Zusammenfassung Daten zu jedem Datensatz hinzuzufügen und dann einfach store.getAt(0).get('summaryValue') verwenden, es ist eine Art verschwenderisch, aber es ist einfach und es funktioniert.

+0

Vielen Dank Marthy. Ich werde es morgen versuchen und Ihnen ein Feedback geben. – F4k3d

+0

Also, wie ist es gelaufen? – MarthyM

+0

Es funktioniert gut außer einer Sache ... Nach der Verwendung von Paging die Summenwerte von den vorherigen Seiten werden nicht angenommen ... Die Beträge werden nur für die aktuelle Seite summiert. Hast du einen Rat für das Problem? – F4k3d

Verwandte Themen