我有一个带有复选框的列,它是由列生成器生成的,如何设置它们全部检查?
感谢。
答案 0 :(得分:3)
这是一个虚拟的例子:
public class CheckBoxColumnGenerator implements Table.ColumnGenerator {
@Override
public Object generateCell(Table source, Object itemId, Object columnId) {
Property<?> prop = source.getItem(itemId).getItemProperty(columnId);
return new CheckBox(null, prop);
}
}
...
Table table = new Table();
table.addContainerProperty("checkbox", Boolean.class, null);
table.addContainerProperty("label", String.class, null);
table.addItem(new Object[] { true, "row#1" }, 1);
table.addItem(new Object[] { false, "row#2" }, 2);
table.addItem(new Object[] { true, "row#3" }, 3);
table.addItem(new Object[] { false, "row#4" }, 4);
table.addGeneratedColumn("checkbox", new CheckBoxColumnGenerator());
然后:
for (Object itemId : table.getItemIds()) {
table.getItem(itemId).getItemProperty("checkbox").setValue(true);
}
答案 1 :(得分:1)
生成列时,请选中复选框。
cb.setData("x");
然后:
Iterator<Component> iterator = table.iterator();
while ( iterator.hasNext() ) {
Component c = iterator.next();
if (c instanceof AbstractField) {
AbstractField<Object> af = (AbstractField<Object>) c;
if ("x".equals(af.getData())) {
af.setValue(true);
}
}
}
(代码未经过测试。)