JSF / ADF / PPR ne peut pas actualiser la page comme prévu
-
22-09-2019 - |
Question
J'ai des problèmes avec JSF / ADF / PPR sur rechargeant la page de manière incorrecte. J'ai selectManyCheckBox avec 5 options en elle, l'une des options est « Tous ». Si les utilisateurs de vérifier cette case, je devrais vérifier tous les autres.
<h:panelGrid styleClass="myBox leftAligned" id="applyChangesBox">
<af:selectManyCheckbox id="changesCheckedBox"
autoSubmit="true" label="Hello: "
value="#{updateForm.applyChangesList}"
valueChangeListener="#{updateForm.testValueChanged}">
<af:selectItem value="A" label="All Changes"/>
<af:selectItem value="R" label="Residential Address"/>
<af:selectItem value="M" label="Mailing Address"/>
<af:selectItem value="P" label="Personal Phone/Fax Numbers"/>
<af:selectItem value="E" label="Personal Email Addresses"/>
</af:selectManyCheckbox>
<af:outputText value="#{updateForm.testValue}" partialTriggers="changesCheckedBox"/>
</h:panelGrid>
J'utilise valueChangeListener pour que je puisse voir mes haricots mis à jour et imprimé correctement, mais ma page ne se recharge et vérifie pas tous les autres case à cocher si je dois.
La solution
Effectuez les opérations suivantes:
- Ne pas utiliser le
valueChangeListener
. Déplacez votre logique à la méthodesetApplyChangesList()
sur votre haricot. - Ajouter
partialTriggers="changesCheckedBox"
à celle choisie choix. - ou remplacer le
<h:panelGrid/>
avec un composant ADF et définissez l'attributpartialTriggers
sur lui afin qu'il ne soit pas sur leselectManyCheckbox
&outputText
ou
Remplacez le selectManyCheckbox
avec selectManyList
et utiliser l'attribut selectAllVisible
qui semble faire ce que vous voulez.
Ces nouveaux cheatsheets sont super! http://www.oracle.com/ technologie / produits / adf / adffaces / 11 / doc / antisèche / lovs.html
Autres conseils
Je sais que la question est très ancienne, mais peut-être d'autres ont encore ce problème. Il est préférable de mettre le partialTrigger sur le parent du plutôt que sur la sortie elle-même. De cette façon, le panneau parent est repeint, en même temps que la sortie. En second lieu, il est une bonne idée de définir le champ « id » des composants qui doivent répondre aux déclencheurs.