Je travaille avec la grille vaadin 8.1.0. J'ai besoin d'insérer une case à cocher en tant que colonne et aussi en tant qu'en-tête de colonne. lorsque je clique sur la case à cocher dans l'en-tête de colonne, toutes les cases à cocher doivent être cochées. Cela fonctionne bien. Mais le problème est que si j'ai 100 lignes, quand je vérifie l'en-tête de l'en-tête, seules certaines cases à cocher de la colonne sont vérifiées, c'est-à-dire, seulement les lignes qui sont affichées. Lorsque je fais défiler les lignes restantes, les cases à cocher ne sont pas cochées. Voici mon code:vaadin8.1.0 Grille avec Checkbox avait un problème
List<Person> people = new ArrayList();
for (int i = 0; i < 1000; i++) {
people.add(i, new Person("Galileo Galilei", 1564));
}
CheckBox CheckBox1 = new CheckBox("All");
CheckBox1.setValue(false);
Grid<Person> grid = new Grid<>();
grid.setItems(people);
grid.addColumn(Person::getName).setCaption("Name");
grid.addColumn(Person::getYear).setCaption("Year of birth").setId("1");
grid.addComponentColumn(Person -> {
CheckBox chk=new CheckBox("Chk 2");
CheckBox1.addValueChangeListener(e->
chk.setValue(CheckBox1.getValue())
);
return chk;
}).setCaption("ch2").setId("CH2");
grid.getHeaderRow(0).getCell("CH2").setComponent(CheckBox1);
Qu'advient-il si vous aussi 'chk.setValue (CheckBox1.getValue())' après avoir créé la case à cocher dans votre colonne de composants (à part déjà fait la valeur d'écoute de changement)? – Morfic
Avez-vous essayé grid.setSelectionMode (SelectionMode.MULTI); au lieu d'utiliser votre propre case à cocher. –
Oui j'ai essayé SelectionMode Mais mon besoin est différent, je n'ai pas besoin de sélectionner la ligne. – Apoorva