Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何选择vaadin表格中的所有行?_Vaadin - Fatal编程技术网

如何选择vaadin表格中的所有行?

如何选择vaadin表格中的所有行?,vaadin,Vaadin,嗨 我有一个复选框,一个表,一个表有10行。如果用户选中该复选框,则需要选择vaadin表中的所有10行,但我不知道如何实现此功能。有人能告诉我如何实现此功能吗?如果可能,请提供一些代码片段。确保表中有yourTable.setMultiSelect(true),然后只需迭代从yourTable.getItemId()获得的ID,并调用yourTable.select(ID)作为所有ID。 这是一种方法。Table.getValue()获取单个项目的ID或多个项目ID的集合,并且Table.ge


我有一个复选框,一个表,一个表有10行。如果用户选中该复选框,则需要选择vaadin表中的所有10行,但我不知道如何实现此功能。有人能告诉我如何实现此功能吗?如果可能,请提供一些代码片段。

确保表中有yourTable.setMultiSelect(true),然后只需迭代从yourTable.getItemId()获得的ID,并调用yourTable.select(ID)作为所有ID。 这是一种方法。

Table.getValue()
获取单个项目的ID或多个项目ID的集合,并且
Table.getItemID()
返回表中所有项目的ID。这意味着您可以通过以下方式选择表中的所有项目:

yourTable.setValue(yourTable.getItemIds());

请注意,如果表的容器中有很多项,这将导致性能问题。不过,在像您这样的简单案例中应该可以使用。

您只需

Table table = new Table(); 
table.setValue(table.getItemIds());
它不应该导致性能问题,相反,您有几百行。如果你有-糟糕的架构

您还可以迭代列表(Vaadin也这样做) 您可以找到如何使用简单的迭代来反转所选列表。 简而言之:

Collection toSelect=newarraylist();
for(Iterator it=simpleTable.getItemId().Iterator();it.hasNext();){
Object next=it.next();
如果(!((集合)simpleTable.getValue()).contains(下一步))
toSelect.add(下一步);
}
simpleTable.setValue(toSelect);

在Vaadin 7中,当您有带有容器数据源的表时,可以执行以下操作:

table.setValue(container.getItemIds());
在Vaadin 6中,这对我来说很有用:

public void selectAll() {
    int size = table.getItemIds().size();
    for(int i = 0; i < size; i++) {
        table.select(i);
    }
    table.requestRepaint();
}

引用变量时不要使用大写字母。setMultiSelect(true)可能会被混淆为一个静态方法,事实并非如此。您给定的链接现在已失效。
public void selectAll() {
    int size = table.getItemIds().size();
    for(int i = 0; i < size; i++) {
        table.select(i);
    }
    table.requestRepaint();
}
table.setSelectable(true);
table.setMultiSelect(true);