# Rendern einer Komponente nach actionListener



## SubSonniC (26. Nov 2013)

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


```
<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>
```


----------



## stg (26. Nov 2013)

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.


----------



## SubSonniC (27. Nov 2013)

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


----------

