Bonjour a tous,
Voila je debute sur JSF, je suis en train de réaliser un tuto de developpez et j'en susi au binding.
L'exemple propose un tableau avec des checkbox, le bean managé contient le UIData (composant tableau) et un composant UISelectBoolean.
L'idée est de pouvoir supprimer les ligne du tableau dont la checkbox est coché.
voici le code lancer lorsque l'on clique sur supprimer :
Cela fonctionne, mais a vrai dire , je ne comprend pas comment !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public void removeSelectedPersonne(){ int size = datatable.getRowCount(); List selectedPersonnes = new ArrayList(); for (int i = 0;i<size;i++){ this.datatable.setRowIndex(i); if(this.checkbox.isSelected()){ selectedPersonnes.add(getPersonnes().get(i)); } } this.personnes.removeAll(selectedPersonnes); }
On a 1 datatable et plusieurs checkbox hors ces checkbox sont bindé sur 1 seule et unique attribut UISelectBoolean, je ne comprend pas ce qui modifie l'attribut checkbox lors du parcours du datatable.
Je sais pas si je suis tres clair mais pour moi c'est comme si j'avais :
La seule chose que je vois, c'est que lorsqu'il fait setRowIndex(i) il modifie l'attribut check box de l'objet contenant le datatable ce qui parrait compliqué !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 int cpt = 1; //simulation de binding :) for (i = 0;i<size;i++){ if(cpt==2) // .... code jamais executé }
Enfin bref je pige pas la !!![]()
Partager