>我有以下属性要在Vaadin表中显示
public class Item
{
String itemName;
String itemSource;
String itemStatus;
...
}
接下来,我使用 ItemContainer 检索数据,并将其连接到表:
ItemContainer container = new ItemContainer(Item.class, app);
table.setContainerDataSource(container);
该表将根据 Item 类显示数据。问题:我可以"以某种方式"更改"动态"字段的数据类型吗?所以我想将"itemStatus"更改为标签,因为以正确的样式显示 HTML 标签。
例如,"itemStatus"中的文本是:<b>Status is:</b><i>Completed</i>
。我想在表格中看到格式化字符串的状态是:已完成
您可以通过
添加具有相同 id 的生成列来覆盖 Table
中的容器属性:
tablet.addGeneratedColumn("itemStatus", new ColumnGenerator() {
@Override
public Object generateCell(Table source, Object itemId, Object columnId) {
Label label = new Label("" + source.getContainerProperty(itemId, columnId).getValue());
label.setContentMode(ContentMode.HTML);
label.setSizeUndefined();
return label;
}
});