我正在寻找一种动态添加列到vaadin表的方法。
我试过了:
private Button createAddColumnButton() {
Button addProductButton = new Button("Add column");
addProductButton.addClickListener(new ClickListener() {
public void buttonClick(ClickEvent event) {
count = count++;
table.addGeneratedColumn("Column "+count, new ColumnGenerator() {
@Override
public Object generateCell(final Table source, Object itemId, Object columnId) {
String x = "some stuff";
return x;
}
});
}
});
return addProductButton;
}
此按钮允许我动态添加列,但只有一列才能收到错误消息,说我不能拥有两个具有相同ID的列。如何更改ID以使其独一无二;添加很多列?
答案 0 :(得分:3)
<强> TL; DR 强>
将代码简单地更改为:
count = count + 1;
<强> Explenation 强>
那是因为分配
count = count++;
无法按预期方式运作。看看下面的代码:
public class HelloStackOverflow {
public static void main(String[] args) {
int count = 0;
count = count++;
System.out.println(count);
}
}
这将在标准输出0上打印。如果将代码更改为:
,您甚至会收到警告(对变量计数的赋值无效)count = ++count;
您可以找到更好的解释here。