Bonjour,
J'ai un tableau (webuijsf table) qui est bindé avec une liste d'objet "Book" (ArrayList).
J'ai une fonction qui me permet d'ajouter des objets dans cette liste ce qui met à jour mon tableau. Jusque là tout est normal.
Cependant, lorsque je veux réaliser l'opération inverse, (list.remove au lieu de list.add) mon tableau de se met pas à jour comme si rien ne s'était supprimé de ma liste. Par contre, lorsque je vide complètement mas liste ça fonctionne...
Fonction d'ajout (qui fonctionne) :
Fonction de suppression qui môôôrche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 protected void AjoutPanier(Integer id) { Book currentBook = findBookById(id); panier.add(currentBook); }
Du coup, j'ai réussi à contourner un peu près la chose en itérant sur ma liste pour en créer une nouvelle que j'affecte finalement à l'autre (assez tordu j'avoue) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 protected void DelPanier(Integer id) { Book currentBook = findBookById(id); panier.remove(currentBook); }
Alors si quelqu'un peut m'expliquer pourquoi ça ne fonctionne pas, je suis vraiment preneur parce que là je ne vois vraiment pas ce que je fais de mal...
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 // Méthode tordue... List<Book> tmpBookList = new ArrayList<Book>(); Iterator<Book> it = panier.iterator(); while(it.hasNext()) { Book bkk = it.next(); if (!bkk.getIdBook().equals(id)) { tmpBookList.add(it.next()); } } panier.clear(); panier = new ArrayList<Book>(tmpBookList);
Partager