创建自定义字段

时间:2012-01-13 13:55:14

标签: custom-controls vaadin

我有以下容器:

BeanContainer<Integer, Person> container = new BeanContainer<Integer, Person>(Person.class);
container.setBeanIdProperty("lastName");

人具有“lastName”,“firstName”和“town”属性。

我将这个容器传递给我的桌子:

table.setContainerDataSource(container);

问题是我想要一个bean id属性值(称为“fullname”),它是lastname和firstname连接的结果。

如何使用setTableFieldFactory和createField方法执行此操作?

谢谢。

3 个答案:

答案 0 :(得分:1)

这样做的一种方法是将getter方法getFullName()添加到Person类,该类具有concatanes而不是返回name + surname字段

答案 1 :(得分:1)

您似乎需要一个简单的自动生成列。以下是一个示例:http://dev.vaadin.com/svn/versions/6.1/src/com/vaadin/demo/featurebrowser/GeneratedColumnExample.java

答案 2 :(得分:0)

fmucar是对的。

不要忘记也包括一个二传手。 在某些情况下,如果您错过包含setter,则会抛出Property.ReadOnlyException。

如果由于以下原因而无法使用GeneratedColum:

  • 可见显示将在任何交互中重新生成(尝试此操作,您可以添加返回随机数的生成列)。
  • 容器只知道可见部分。所以排序可能很棘手。