其他分享
首页 > 其他分享> > 如何在表或indexedcontainer中获取多个选定的行?

如何在表或indexedcontainer中获取多个选定的行?

作者:互联网

我有一个表,其DataSource设置为IndexedContainer.我的桌子上也启用了多个选择.问题是,如何将所有选定的值…作为数组?

我的IndexedContainer:

private void populateAnalyteTable () {

        Analyte[] analytes = Analyte.getAnalytes();

        for (Analyte analyte : analytes) {

            Object id = ic_analytes.addItem();
            ic_analytes.getContainerProperty(id, "ID").setValue(analyte.getId());
            ic_analytes.getContainerProperty(id, "Analyte Name").setValue(analyte.getAnalyteName());

        }

        // Bind indexed container to table
        tbl_analytes.setContainerDataSource(ic_analytes);

    }

我最终想要得到的是一组Analyte对象

解决方法:

为什么要使用IndexContainer?你为什么不使用BeanItemCotainer?
请在下面找到代码片段

table.setMultiSelect(true);
BeanItemContainer<Analyte> container = new BeanItemContainer<Analyte>(Analyte.class);
container.addAll(Arrays.asList(Analyte.getAnalytes()));
table.setContainerDatasource(container);
// Add some Properties of Analyte class that you want to be shown to user
table.setVisibleColumns(new Object[]{"ID","Analyte Name"});


//User selects Multiple Values, mind you this is an Unmodifiable Collection
Set<Analyte> selectedValues = (Set<Analyte>)table.getValue();

如果它没有解决问题,请告诉我

标签:java,vaadin,vaadin6
来源: https://codeday.me/bug/20190830/1767397.html