Bonjour,

J'ai un site web où je fais des ajouts/suppressions de blocs. Voici mon code:
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
<h:dataTable id="tbl" value="#{bean.liste}" var="item" style="width: 100%;">
    <h:column>
        <h:panelGrid styleClass="dr-pnl" style="width: 100%;">
            <h:outputLabel for="nom">Nom</h:outputLabel>
            <h:inputText id="nom" value="#{item.nom}"></h:inputText>
             <h:commandButton id="supprimer" value="Supprimer">
                <f:ajax listener="#{bean.supprimer(item)}" execute="@form" render="@form" />
            </h:commandButton>
        </h:panelGrid>
    </h:column>
    <f:facet name="footer">
        <h:commandButton id="ajouter" value="Ajouter">
            <f:ajax listener="#{bean.ajouter}" execute="@form" render="tbl" immediate="true" />
        </h:commandButton>
    </f:facet>
</h:dataTable>
J'ai un problème avec la suppression. Mon champ est validé par JSF à l'instant où je clique sur "supprimer". Si je rentre "3" comme champ, et que je clique sur "supprimer", il v a y avoir une erreur qui s'affichera sur le bas de la page, me disant que le champ est invalide, alors que je suis censée supprimer le bloc.
La solution à ce problème, c'est de mettre un immediate="true", afin qu'il n'y ait pas de validation. Par contre, le souci avec cette méthode, c'est que le bean n'est pas mis à jour (http://blog.jerryorr.com/2012/01/jsf...e-command.html). Or, j'ai besoin de mettre à jour mon modèle.

Pour contourner ce problème, je me dis qu'il faut que j'efface d'abord le bloc concerné avec du Javascript, pour ensuite exécuter ma méthode de suppression.

Comment faire cela?

Merci d'avance!