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
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 <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 méthode appelée lors de la modification dans le selectOneMenu :
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>
Qq'un saurait-il me dire ce qu'il manque pour que cela fonctionne correctement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public void updateDateDelaiAction() { this.selectedAcquis.getOffre().setDateActionAcquis(null); }
Merci pour votre aide
Partager