DataTable update columnGroup footer after rowEdit event

UI Components for JSF
Post Reply
doons
Posts: 11
Joined: 09 Oct 2015, 09:32

20 Oct 2015, 14:45

Hi all,

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>
It seems like the update is done before the rowEdit event but I dont know why
Can someone help me please ?
Thanks
PrimeFaces 5.3 / JSF 2.0 / Glassfish 4

Az.MaYo
Posts: 5
Joined: 19 Mar 2014, 14:09

25 May 2022, 22:28

I'm also facing same it's not working :/ can anyone help

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 39 guests