Rendern einer Komponente nach actionListener

SubSonniC

Mitglied
Hallo,

an meinen commandButtons wird entweder actionListener (kein process vorhanden) oder process ausgeführt. Nicht aber beides nacheinander. Ich versteh einfach nicht wo das Problem liegt. Ich hab alles mögliche schon ausprobiert, aber ich bekomm es nicht hin.

Ich möchte einfach das beim Klick auf den Button generieren zuerst actionListener ausgeführt wird, und dass dann das update bzw. ein process (ich hab beides ausprobiert) das PanelGrid im zweiten Dialog neu aufbaut bzw, updated.

Ich versteh überhaupt nicht wo eigendlich das Problem dabei ist. Dass sollte doch ein Standardvorgehen sein.

Ich benutze Java 7, Glassfish 4, Primefaces 4

Java:
	<p:dialog header="Neue Rechnungen generieren"
				widgetVar="newBillingsDialog" resizable="false" id="newBillingsDlg">
				<h:form id="newBillingsForm">
					<p:panelGrid id="SelectDateForBilling" columns="2" cellpadding="4"
						style="border:0; margin:0 auto;">

						<h:outputText value="Jahr" />
						<p:selectOneMenu value="#{billingPM.selectedYear}">
							<f:selectItem itemLabel="#{billingPM.currentYear}"
								itemValue="#{billingPM.currentYear}" />
							<f:selectItems value="#{billingPM.years}" var="year"
								itemLabel="#{year}" itemValue="#{year}" />
						</p:selectOneMenu>



						<h:outputText value="Monat" />
						<p:selectOneMenu value="#{billingPM.selectedMonth}">
							<f:selectItem itemLabel="#{billingPM.currentMonth}"
								itemValue="#{billingPM.currentMonth}" />
							<f:selectItems value="#{billingPM.months}" var="month"
								itemLabel="#{month}" itemValue="#{month}" />
						</p:selectOneMenu>

						<f:facet name="footer">
							<p:commandButton value="Generieren"
								update=":newBillingsCheckListForm:newBilling"
								oncomplete="newBillingsCheckListDialog.show()"
								icon="ui-icon-star" actionListener="#{billingPM.createBillings}">
							</p:commandButton>
						</f:facet>
					</p:panelGrid>
					
				</h:form>
			</p:dialog>




			
				
				<p:dialog header="Rechnung" widgetVar="newBillingsCheckListDialog"
				resizable="false" id="newBillingsCheckListDlg" >
				<h:form id="newBillingsCheckListForm">
					<p:panelGrid id="newBilling" cellpadding="4" style="margin:0 auto;">


						<p:columns value="#{billingPM.currentBill.positions}"
							var="position" columnIndexVar="i" styleClass="ui-editable-column">

							<f:facet name="header">Test</f:facet>
							<h:outputText value="#{position.get('test')}" />

							<f:facet name="header">Anzahl</f:facet>
							<h:outputText value="#{position.get('count')}" />

							<f:facet name="header">Einzelpreis</f:facet>
							<h:outputText value="#{position.get('single')}" />

							<f:facet name="header">Summe</f:facet>
							<h:outputText value="#{position.get('sum')}" />

						</p:columns>

					</p:panelGrid>

					<p:commandButton value="Zurück"
						update=":newBillingsCheckListForm:newBilling"
						actionListener="#{billingPM.lastNewBilling}" />
					<p:commandButton value="Nächste"
						update=":newBillingsCheckListForm:newBilling"
						actionListener="#{billingPM.nextNewBilling}" />
						
				</h:form>
			</p:dialog>
 
Zuletzt bearbeitet:
Nur damit ich dich richtig verstehe:

- der actionListener wird ausgeführt
- der Dialog wird wie gewünscht angezeigt
- aber der content vom Dialog ist nicht aktualisiert worden?

Ich kann mich daran erinnern, dass ich bei einem ganz ähnlich aufgebauten File mal das gleiche (oder ähnliches) Problem hatte. Das lag, meine ich, an für mich unerwarteten automatisch generierten IDs in "höheren Tags".
Du kannst ja folgendes einfach mal ausprobieren, falls der Aufbau deiner xhtml-Seite das zulässt:
- setze das form-Tag außerhalb des dialog-Tags
- update das ganze form
- zeige den dialog
Sollte sich ja schnell mal testen lassen, ob es was bringt. Falls ja (aber auch sonst) schau dir mal das generierte html-File an.
 
Woow Danke,

das Form-Tag auserhalb des Dialog-Tags anzusiedeln und dann nur das Formular upzudaten hat geklappt und hat gleich ein Paar andere Merkwüridigkeiten mit behoben.

Brachte jetzt aber auch ein neue Problem mit sich. Die comandButtons innerhalb des Formulars führen den actionListener nicht mehr aus.


Grüße

David
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben