我在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调用下方。