我需要将列“anzahl”中的值转换为链接或按钮,并且我正在努力使用vaadin表的结构。我从mysql表名“SYSTEM”获取数据库值(在实体类System中)。
这是我定义的表属性:
private void initSystemTable() {
JPAContainer<System> systems = new SystemServiceDB().getAllSystems();
table_system.setSizeFull();
table_system.setContainerDataSource(systems);
table_system.setVisibleColumns(new Object[] { "softwarebezeichung", "version", "anzahl", "lizenzen" });
table_system.setColumnHeader("softwarebezeichung", "Softwarebezeichung");
table_system.setColumnHeader("version", "Version");
table_system.setColumnHeader("anzahl", "Anzahl");
table_system.setColumnHeader("lizenzen", "Vorhandene lizenzen");
table_system.setImmediate(true);
}
和类SystemServiceDB:
public class SystemServiceDB implements SystemService{
@Override
public JPAContainer<System> getAllSystems()
{
JPAContainer<System> systems = JPAContainerFactory.make(System.class, "help-pu");
return systems;
}
}
这是我的输出表:
我无法使用addContainerProperty
将列设置为从mysql加载这些值,我找不到解决此问题的方法。如果有人能帮我解决这个问题,我将不胜感激。
table_system.addContainerProperty("anzahl", Link.class, null);
table_system.addContainerProperty("anzahl", Button.class, null);
答案 0 :(得分:4)
使用生成的列。
这是带有按钮的生成列的示例:
table.addGeneratedColumn("generated", new ColumnGenerator() {
@Override
public Component generateCell(Table source,
final Object itemId, Object columnId) {
Button button = new Button("caption");
//Listener for the button
button.addClickListener(Event -> {
//Your code
});
return button;
}
});