I have a datatable in row edit mode.
I also have a footer columnGroup with columns total.
I want to update the totals in footer after rowEdit event.
This is my datatable :
Code: Select all
<p:dataTable id="heures" value="#{saisirHeuresForm.listHeures}"
var="heure" widgetVar="heureTable"
emptyMessage="#{msg['AucuneSaisieAAfficher']}" rowKey="#{heure.id}"
editable="true" >
<f:facet name="header">
<p:outputPanel>
<div align="left">
<h:panelGrid id="actionmain" columns="3" style="width:200px;" styleClass="panelSansBordure">
<p:commandLink action="#{saisirHeuresForm.ajouterHeure}"
update=":saisirHeuresForm:heures" id="createHeureBtn"
disabled="#{saisirHeuresForm.montantTarifKm eq 0 or saisirHeuresForm.currentEmployePer eq null}"
styleClass="ui-icon ui-icon-action-ajouter"
oncomplete="jQuery('.ui-datatable-data tr').last().find('span.ui-icon-pencil').each(function(){jQuery(this).click()});
$(function(){PrimeFaces.focus('saisirHeuresForm:heures');});" >
<p:tooltip id="ajouterlinktooltip" for="createHeureBtn" value="#{msg['AjouterUneHeure']}" />
</p:commandLink>
<h:commandButton id="printRapport" value="#{msg['AbregeRapportMensuel']}"
action="#{saisirHeuresForm.generateRapportMensuel}" >
<p:tooltip id="toolTip_printRapport" for="printRapport" value="#{msg['RapportMensuel']}" />
</h:commandButton>
<h:commandButton id="printDecompte" value="#{msg['AbregeHeuresVacances']}"
action="#{saisirHeuresForm.generateDecompteHeuresVacances}" rendered="false" >
<p:tooltip id="toolTip_printDecompte" for="printDecompte" value="#{msg['DecompteDHeuresEtDeVacances']}" />
</h:commandButton>
</h:panelGrid>
</div>
</p:outputPanel>
</f:facet>
<p:ajax event="rowEdit" listener="#{saisirHeuresForm.enregistrerModification}" update="saisirHeuresForm:heures:totaux" />
<p:ajax event="rowEditInit" listener="#{saisirHeuresForm.setSelectedHeureForEdit}" />
<p:column headerText="#" style="width:2%">
<p:commandLink id="supprimer" onclick="PF('confDeleteDlg').show()"
immediate="true" styleClass="ui-icon ui-icon-action-supprimer">
<f:setPropertyActionListener
target="#{saisirHeuresForm.selectedHeure}" value="#{heure}" />
<p:tooltip id="supprimertooltip" for="supprimer" value="#{msg['Supprimer']}" />
</p:commandLink>
</p:column>
<p:column headerText="@ #{msg['Mandat']}" style="width:7%">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{heure.mandat.numero}" />
</f:facet>
<f:facet name="input">
<p:autoComplete id="mandat" value="#{heure.mandat}"
completeMethod="#{saisirHeuresForm.completeMandat}" var="mandat"
itemLabel="#{mandat.numero}" itemValue="#{mandat}"
minQueryLength="2"
converter="MandatConverter" forceSelection="false" size="50" >
<p:ajax event="itemSelect" listener="#{saisirHeuresForm.updateLists()}" update="mo, phase" />
<p:column>
<h:outputText value="#{mandat.numero}" />
</p:column>
<p:column>
<h:outputText value="#{mandat.listMandatIdentiteToString}" />
</p:column>
<p:column>
<h:outputText value="#{mandat.objet}" />
</p:column>
</p:autoComplete>
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="#{msg['Date']}" style="width:5%">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{heure.date}">
<f:convertDateTime pattern="dd.MM.yyyy" />
</h:outputText>
</f:facet>
<f:facet name="input">
<p:calendar id="date" value="#{heure.date}" showOn="false"
style="width:96%" label="fin" pattern="dd.MM.yyyy" mask="true" locale="fr" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="#{msg['Description']}" style="width:20%">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{heure.description}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{heure.description}" style="width:96%"
label="Description" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="#{msg['Duree']}"
style="width:5%; text-align:center" id="tot">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{heure.duree}" rendered="#{heure.duree gt 0}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</f:facet>
<f:facet name="input">
<p:inputText value="#{heure.duree}" id="duree"
converterMessage="Cannot convert to double." style="width:96%" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="#{msg['AbregeTarifTemps']}" style="width:2%">
<p:cellEditor>
<f:facet name="output">
<p:selectBooleanCheckbox value="#{heure.tarifTemps}"
disabled="true" />
</f:facet>
<f:facet name="input">
<p:selectBooleanCheckbox value="#{heure.tarifTemps}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="#{msg['MaitreDOeuvre']}" style="width:10%">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{heure.maitreOuvrage}" />
</f:facet>
<f:facet name="input">
<p:selectOneMenu id="mo" value="#{heure.maitreOuvrage}" converter="IdentiteConverter"
style="width:150px;" >
<f:selectItem itemLabel="" itemValue="#{null}" />
<f:selectItems value="#{saisirHeuresForm.listHeureMaitreOeuvre}" />
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="#{msg['Phase']}" style="width:10%">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{heure.phaseProjet}" />
</f:facet>
<f:facet name="input">
<p:selectOneMenu id="phase" value="#{heure.phaseProjet}" converter="PhaseProjetConverter"
style="width:150px;" >
<f:selectItem itemLabel="" itemValue="#{null}" />
<f:selectItems value="#{saisirHeuresForm.listHeurePhaseProjet}" />
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="#{msg['NbKM']}"
style="width:5%; text-align:center">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{heure.nbKm}" rendered="#{heure.nbKm gt 0}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</f:facet>
<f:facet name="input">
<p:inputText value="#{heure.nbKm}" id="nbKm"
converterMessage="Cannot convert to double." style="width:96%" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="#{msg['FraisKM']}"
style="width:5%; text-align:center">
<h:outputText value="#{heure.fraisKm}" rendered="#{heure.fraisKm gt 0}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</p:column>
<p:column headerText="#{msg['FraisDepl']}"
style="width:5%; text-align:center">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{heure.fraisDeplacement}" rendered="#{heure.fraisDeplacement gt 0}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</f:facet>
<f:facet name="input">
<p:inputText value="#{heure.fraisDeplacement}" id="fraisDepl"
converterMessage="Cannot convert to double." style="width:96%" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="#{msg['FraisRepas']}"
style="width:5%; text-align:center">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{heure.fraisRepas}" rendered="#{heure.fraisRepas gt 0}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</f:facet>
<f:facet name="input">
<p:inputText value="#{heure.fraisRepas}" id="fraisRepas"
converterMessage="Cannot convert to double." style="width:96%" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="#{msg['FraisAutre']}"
style="width:5%; text-align:center">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{heure.fraisAutre}" rendered="#{heure.fraisAutre gt 0}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</f:facet>
<f:facet name="input">
<p:inputText value="#{heure.fraisAutre}" id="fraisAutre"
converterMessage="Cannot convert to double." style="width:96%" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="#{msg['TotalFrais']}"
style="width:5%; text-align:center">
<h:outputText value="#{heure.fraisTotal}" rendered="#{heure.fraisTotal gt 0}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</p:column>
<p:column style="width:3%" rendered="#{saisirHeuresForm.montantTarifKm ne 0}">
<p:rowEditor />
</p:column>
<!-- Totaux -->
<p:columnGroup type="footer" id="totaux">
<p:row id="rowTotal" >
<p:column colspan="4" style="text-align:right"
footerText="#{msg['Totaux']} :" />
<p:column style="text-align:center">
<f:facet name="footer">
<h:outputText id="totH" value="#{saisirHeuresForm.totalHeures}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</f:facet>
</p:column>
<p:column />
<p:column />
<p:column />
<p:column style="text-align:center">
<f:facet name="footer">
<h:outputText value="#{saisirHeuresForm.totalKm}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</f:facet>
</p:column>
<p:column style="text-align:center">
<f:facet name="footer">
<h:outputText value="#{saisirHeuresForm.totalFraisKm}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</f:facet>
</p:column>
<p:column style="text-align:center">
<f:facet name="footer">
<h:outputText value="#{saisirHeuresForm.totalFraisDeplacement}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</f:facet>
</p:column>
<p:column style="text-align:center">
<f:facet name="footer">
<h:outputText value="#{saisirHeuresForm.totalFraisRepas}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</f:facet>
</p:column>
<p:column style="text-align:center">
<f:facet name="footer">
<h:outputText value="#{saisirHeuresForm.totalFraisAutre}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</f:facet>
</p:column>
<p:column style="text-align:center">
<f:facet name="footer">
<h:outputText value="#{saisirHeuresForm.totalFraisTotal}">
<f:convertNumber pattern="#,##0.00" locale="en" />
</h:outputText>
</f:facet>
</p:column>
<p:column />
</p:row>
</p:columnGroup>
</p:dataTable>
Can someone help me please ?
Thanks