1

在我重置 TreeTable 的容器数据源后,我试图重新扩展 TreeTable 中的对象,但我不起作用。有没有人试过这个?我哪里错了?

private void setTableDataSource() {
    Set<Object> expandedMap = new HashSet<Object>();
    if(table.getItemIds() != null && !table.getItemIds().isEmpty()){
        for(Object o : table.getItemIds()){         
            if(table.isCollapsed(o))
                expandedMap.add(o);
        }
    }       
    table.setContainerDataSource(ContactContainerFactory.createContainer(model.getParentModel()));
    table.setVisibleColumns(new String[]{"title", "operation", "id", "price"});
    table.setColumnHeaders(getTranslatedTableHeaders());        
    if(!expandedMap.isEmpty()){
        for(Object o : expandedMap){                
            table.setCollapsed(o, false);
        }
    }
}
4

1 回答 1

0

我是这样做的:

summary.getItemIds().forEach(id -> {
    summary.setCollapsed(id, false);
    summary.getChildren(id).forEach(child -> {
        summary.setCollapsed(child, false);
    });
});

其中 summary 是树表。这仅适用于 2 级表,但可以通过递归方法完成。

于 2017-07-10T21:16:46.063 回答