我在为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);
}
}
}
答案 0 :(得分:0)
我是这样做的:
summary.getItemIds().forEach(id -> {
summary.setCollapsed(id, false);
summary.getChildren(id).forEach(child -> {
summary.setCollapsed(child, false);
});
});
摘要是树表。这仅适用于2级表,但可以使用递归方法完成。