我是vaadin的新手。我正在使用vaadin表并从数据库表中获取表数据。所以我希望将其中一个列数据作为超链接。
我正在做这样的事情
table.addContainerProperty("First Name", Component.class, null);
table.addContainerProperty("Last Name", String.class, null);
table.addContainerProperty("Year", Integer.class, null);
我看到了一个示例,我可以将列类型称为超链接。假设我将列类型作为超链接,我如何将超链接属性添加到行值。
如果这些值是静态的,我可以这样做,但它们来自数据库,我只是绑定它们。
任何方向或帮助都将受到赞赏。
答案 0 :(得分:2)
您可以将生成的列添加到表中,并为每个表行返回一个链接。
示例:
假设表格的数据源中有一个属性“LinkUrl”,其中包含链接的URL。
table.addGeneratedColumn("WebsiteLink", new ColumnGenerator() {
private static final long serialVersionUID = 1L;
@Override
public Object generateCell(Table source, Object itemId, Object columnId) {
String linkUrl = (String) source.getItem(itemId).getItemProperty("LinkUrl").getValue();
Link websiteLink = new Link(linkUrl, new ExternalResource(linkUrl));
websiteLink.setTargetName("_blank");
return websiteLink;
}
});
编辑:或者如果要直接向表中添加项目,可以添加类型为Link
的容器属性,并为每个Item
返回一个链接。