更改表的列标题

时间:2014-12-18 21:54:41

标签: vaadin

我正在尝试了解有关sqlcontainer的更多信息,并且能够使用来自sql server的数据创建只读表。我已经使用了freeformquery,例如" select * from table1"。现在我正在尝试更改表格的列标题。我所做的是使用freeformquery设置sqlcontainer并将表的数据源设置为该sqlcontainer。

我从api看到有一个setColumnHeader方法,它接受propertyId和一个字符串。我如何获得第一列或第二列的属性?

2 个答案:

答案 0 :(得分:2)

Table.setColumnHeader()

是您正在寻找的:propertyId实际上是容器中字段的名称。所以,如果你有

SELECT id, name FROM person

你可以做到

table.setColumnHeader("id", "Table key");
table.setColumnHeader("Name", "Person's name");

遗憾的是,没有直接设置位置,但如果需要,您可以执行类似

的操作
List<Object> ids = Arrays.asList(categorieTable.getItemIds().toArray());
categorieTable.setColumnHeader(ids.get(0), "Table key");
categorieTable.setColumnHeader(ids.get(1), "Person's name");

答案 1 :(得分:0)

在这种情况下,table propertyIds是数据库中的列名。您可以使用方法table.getContainerPropertyIds()

获取表propertyIds

给定具有两列的数据库表&#34; id&#34;和&#34;名称&#34;你可以改变&#34; id&#34;标题为&#34;圣诞老人Id&#34;使用以下代码(您不必迭代,我只想展示如何获取propertyIds):

        Collection<?> columnIds = table.getContainerPropertyIds();
        for(Object propertyId : columnIds)
        {
            if(propertyId.equals("id"))
            {
                table.setColumnHeader(propertyId, "Santa Claus Id");
            }
        }