1

私は 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);
4

3 に答える 3