我在Vaadin中创建了简单的FilterTable

    private static final String COL1_PROP = "date";
    private static final String COL2_PROP = "name";
    private static final String COL3_PROP = "status";

    //............

    final FilterTable fooTable= new FilterTable();
    fooTable.setImmediate(true);
    fooTable.setSelectable(true);
    fooTable.setWidth("100.0%");
    fooTable.setHeight("100.0%");

    fooTable.setColumnHeader(COL1_PROP, "Date");
    fooTable.setColumnHeader(COL2_PROP, "Name");
    fooTable.setColumnHeader(COL3_PROP, "Status");

    fooTable.setFilterBarVisible(true); //show filters
    fooTable.setFilterFieldVisible(COL1_PROP, false); //hide col1_prop column filter

    fooTable.setColumnCollapsingAllowed(true); // allow collapsing
    fooTable.setColumnCollapsed(COL3_PROP, true); // collapse col3_prop column

    fooTable.setContainerDataSource(container);

    fooTable.setColumnExpandRatio(COL1_PROP, 1.0f);
    fooTable.setColumnExpandRatio(COL2_PROP, 2.0f);


我的容器是带有以下查询的SQLConterner

SELECT date, name, status FROM foo


我得到的数据没有问题,但是,我想完全隐藏Status列。我还想隐藏Date列过滤器。正如我认为带有注释的行会执行此操作。但是,事实并非如此。我在表中获得了完整的3列,所有这些列都可以使用过滤器。

怎么了?

最佳答案

将注释行移到setContainerDataSource调用下方。

08-05 09:32