Bonjour,

J'utilise la version 6.1 de primefaces.

Voici mon problème :
J'ai un treetable dans lequel j'ai un commandLink par ligne qui ouvre un dialogue pour éditer l'objet de la ligne en question.
Dans le dialogue, j'ai un selectOneMenu qui permet de changer l'étape d'avancement de ma ligne avec en event ajax "change". Si je modifie cette valeur, lors des prochaines ouvertures du dialogue, les champs gardent les valeurs de la ligne pour laquelle j'ai fais la modification .... par contre, si je ne change pas cette valeur, les champs sont bien à jour avec les valeurs de la ligne sélectionnée.

J'ai essayé toute sorte d'update, actions et autre mais sans succès. Je pense qu'il s'agit "juste" d'un problème de rafraichissement mais je ne trouve pas.

Voici le code de l'action qui ouvre la dialogue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<p:commandLink
	id="cmpBoutonEditer"
	oncomplete="PF('dialogMd').show()"
	update=":monForm:dialog"
	rendered="#{acquis.type eq 'offre' or acquis.type eq 'contrat'}">
	<f:setPropertyActionListener
		target="#{monForm.selectedAcquis}"
		value="#{acquis}" />
 
	<i class="fa fa-edit"></i>
	<p:tooltip
		for="cmpBoutonEditer"
		value="#{msg['Modifier']}" />
</p:commandLink>
La code du dialogue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<h:form id="monDialogForm">
	<!--  DIALOG pour modifier le détail de l'acquis -->
	<p:dialog
		modal="true"
		dynamic="true"
		width="550"
		height="770"
		widgetVar="dialogMandat"
		id="dialog">

		<f:event
			listener="#{monForm.validateForm}"
			type="postValidate" />

		<div style="margin: 5px 10px 10px">
			<p:outputLabel
				value="#{msg['Detail']}"
				styleClass="FontBold Fs18 hardblue" />
		</div>
		
		<!-- DETAIL DE L'OFFRE -->

		<p:panelGrid
			id="panelOffre"
			layout="grid"
			columns="2"
			columnClasses="ui-grid-col-6,ui-grid-col-9"
			style="border:0px !important; background:none;"
			rendered="#{monForm.selectedAcquis.type eq 'offre'}">
			<p:outputLabel value="#{msg['Numero']} :" />
			<p:outputLabel
				value="#{monForm.selectedAcquis.offre.numero}" />

			<p:outputLabel value="#{msg['Date']} :" />
			<p:calendar
				id="cmpDateOffre"
				disabled="#{monForm.selectedAcquis.offre.fluxAcquisCi ne 'RELANCE'
					and monForm.selectedAcquis.offre.fluxAcquisCi ne 'ACCEPTEE'}"
				value="#{monForm.selectedAcquis.offreVersion.dateOffre}"
				showOn="true"
				pattern="dd.MM.yyyy"
				mask="true"
				locale="fr" />

			<p:outputLabel value="#{msg['Version']} :" />
			<p:inputText
				id="cmpVersionOffre"
				value="#{monForm.selectedAcquis.offreVersion.versionOffre}"
				disabled="#{monForm.selectedAcquis.offre.fluxAcquisCi ne 'RELANCE'
					and monForm.selectedAcquis.offre.fluxAcquiCi ne 'ACCEPTEE'}" />

			<p:outputLabel value="#{msg['EtapeActuelle']} :" />
			<p:selectOneMenu
				id="cmpEtapeActuelleOffre"
				style="min-width:175px;"
				value="#{monForm.selectedAcquis.offre.fluxAcquisCi}">
				<f:selectItems
					value="#{monForm.listFluxAcquisOffre}" />
				<p:ajax
					event="valueChange"
					update="cmpDateDelaiOffre cmpVersionOffre cmpDateOffre"
					listener="#{monForm.updateDateDelaiAction}" />
			</p:selectOneMenu>
			
			<p:outputLabel value="#{msg['DelaiDAction']} :" />
			<p:calendar
				id="cmpDateDelaiOffre"
				disabled="#{monForm.selectedAcquis.offre.fluxAcquisCi eq 'NON_ACQUIS' or monForm.selectedAcquis.offre.fluxAcquisCi eq 'ACCEPTEE'}"
				value="#{monForm.selectedAcquis.offre.}"
				showOn="true"
				pattern="dd.MM.yyyy"
				mask="true"
				locale="fr">
				<p:ajax
					event="dateSelect"
					listener="#{monForm.controlerDateDelaiAction()}"
					update="messages" />
				<p:ajax
					event="change"
					listener="#{monForm.controlerDateDelaiAction()}"
					update="messages" />
			</p:calendar>
		</p:panelGrid>

		<p:messages
			id="messages"
			escape="false"
			autoUpdate="true" />

		<div
			align="center"
			style="margin-top: 30px;">
			<p:commandButton
				id="cmpBtnEnregistrer"
				value="#{msg['Enregistrer']}"
				action="#{monForm.enregistrerModification}"
				style="max-width:120px; margin-right:30px;"
				update=":monForm:cmpTreeTableMandats" />

			<p:commandButton
				onclick="PF('dialogMandat').hide()"
				value="#{msg['Annuler']}"
				style="max-width:120px;" />
		</div>
	</p:dialog>
</h:form>
La méthode appelée lors de la modification dans le selectOneMenu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public void updateDateDelaiAction() {
    this.selectedAcquis.getOffre().setDateActionAcquis(null);
}
Qq'un saurait-il me dire ce qu'il manque pour que cela fonctionne correctement ?
Merci pour votre aide