【问题标题】:How to select all checkBoxes in table column -Vaadin 7如何选择表格列中的所有复选框-Vaadin 7
【发布时间】:2013-10-27 10:19:24
【问题描述】:

我有一列带有复选框,它是由列生成器生成的,我怎样才能将它们全部选中?

谢谢。

【问题讨论】:

  • 我也尝试使用 JS,但这个剂量有效 - raelly 值剂量变化看起来像假的:S
  • 只是为了精确的问题-您是否希望在初始化表时或稍后(即由于用户交互等)检查所有这些?
  • @PDave 我也有同样的要求。需要在 Vaadin 的表的标题级别添加一个复选框。这将允许用户全选和取消全选。您是如何在标题级别添加复选框的?

标签: vaadin checkboxlist selectall


【解决方案1】:

这是一个虚拟示例:

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);
}

【讨论】:

    【解决方案2】:

    当您生成列时标记复选框。

    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);
        }
      }
    }
    

    (代码未经测试。)

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 1970-01-01
      • 2019-11-24
      • 2010-10-30
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      相关资源
      最近更新 更多