我正在使用vaadin 8.1.0網格。我需要插入複選框作爲列和列標題。當我單擊列標題中的複選框時,應檢查所有列複選框。這工作正常。但問題是如果我有100行,當我檢查標題複選框時,只檢查一些列複選框,即只顯示行。當我滾動其餘行時,複選框不會被選中。這裏是我的代碼:vaadin8.1.0帶複選框的網格有問題
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);
會發生什麼,如果你也做'chk.setValue(CheckBox1.getValue())'(從已經在做它的價值變化監聽除外)在您的組件列在創建複選框後? – Morfic
你嘗試過grid.setSelectionMode(SelectionMode.MULTI);而不是使用自己的複選框。 –
是的,我試過SelectionMode但我的需求是不同的,我不需要選擇行。 – Apoorva