私は vaadin 8.1.0 グリッドで作業しています。チェックボックスを列として、また列ヘッダーとして挿入する必要があります。列ヘッダーのチェックボックスをクリックすると、すべての列のチェックボックスをオンにする必要があります。それはうまくいっています。しかし、問題は、100行ある場合、ヘッダーのチェックボックスをチェックすると、一部の列のチェックボックスのみがチェックされます。つまり、表示される行のみがチェックされます。スクロールダウンすると、残りの行のチェックボックスはチェックされません。これが私のコードです:
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);