Primefaces Datatable dynamische Berechnung
In meinem view-Schicht, verwende ich eine Primefaces Datatable mit 9 Spalten, die die letzten sind float-Werte (Spalte name= 'Valor').
Gibt es eine integer-Spalte mit dem Namen "prefDep", die einen filter für seine Werte (foreignKey Werte, by the way):
<!-- column name omitted -->
<p:column sortBy="#{item.prefDep}" filterBy="#{item.prefDep}">
<h:outputText value="#{item.prefDep}"/>
</p:column>
Die Letzte Zeile der Datatable hat eine festen GrandTotal, die die Gesamtsumme der genannten 'Valor' - Spalte:
<p:columnGroup type="footer">
<p:row>
<p:column colspan="8" footerText="Grand Total:" />
<p:column footerText="#{upbController.totalLosses}" />
</p:row>
</p:columnGroup>
Methode in der controller-Klasse, um den Gesamt-Summe:
public int getTotalLosses() {
int total = 0;
for(Upb id : getItems()) {
total += id.getValor();
}
return total;
}
Was ich will: wie Filtere ich die Datatable, ich will zeigen das entsprechende GrandTotal für die gefilterte Teil nur die Werte und nicht die 'festen' Gesamt-Summe.
Wie kann ich es tun?
Vielen Dank im Voraus.
--
Nach Abschnitt:
In meinem AbstractController ich habe:
private List<T> filteredUpb;
//...
public List<T> getFilteredUpb() {
if (filteredUpb == null) {
filteredUpb = this.ejbFacade.findAll();
}
return filteredUpb;
}
In meinem UpbController (managedBean):
private List<Upb> filteredUpb = null;
//...
public int getPerdasTotal() {
int total = 0;
for (Upb id : getFilteredUpb()) {
total += id.getVlOco();
}
return total;
}
In jsf:
<p:column>
<f:facet name="footer">
<h:outputText value="#{upbController.perdasTotal}" />
</f:facet>
</p:column>
InformationsquelleAutor jMarcel | 2013-11-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach nicht lassen diese Frage unbeantwortet, die Lösung (siehe unten) für diese Frage finden Sie in diesem anderen post von mir: Dynamische Berechnung Mit Filter in Datatable
Ich denke, dass Sie definieren können AJAX-Aufrufe auf PF datatable filtern und/oder paging.
In Ihrem updateSum () - Methode, können Sie zu Fuß durch die filteredValues Kollektion machen Sie Ihr Geschäft.
Haben Sie möglicherweise einige Schwierigkeiten, Ziel der update-Komponente eingeschlossen in die datatable aber dies kann behoben werden, durch hinzufügen von etwas wie
styleClass="footerToUpdate"
code und verwenden Sie es in das update mitupdate="@(.footerToUpdate)"
InformationsquelleAutor jMarcel