【问题标题】:How to re-expand objects in vaadin TreeTable如何在 vaadin TreeTable 中重新展开对象
【发布时间】:2012-02-10 14:09:12
【问题描述】:

我在重置 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);
        }
    }
}

【问题讨论】:

  • 您使用哪个 vaadin 版本?您是否尝试过最后一个夜间构建?似乎他们添加了允许您折叠/展开所有元素的方法:vaadin.com/forum/-/message_boards/view_message/…
  • @Marthin 只是作为一个提示,但我很确定你已经考虑过 hash() 和 equals() 方法。
  • 如果你解决了这个问题,请更新答案,Martin!
  • @AjOtto 我从来没有得到这个答案。我不再从事那个项目了,所以我不记得我们是如何解决它的。

标签: vaadin treetable


【解决方案1】:

我是这样做的:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 2016-11-24
    相关资源
    最近更新 更多