在Vaadin 7.5.3的Grid小部件中,我们可以通过调用或来确定当前选择的行。SelectionEvent::getSelected
Grid::getSelectedRows
那么我们如何以编程方式设置选择呢?
在Vaadin 7.5.3的Grid小部件中,我们可以通过调用或来确定当前选择的行。SelectionEvent::getSelected
Grid::getSelectedRows
那么我们如何以编程方式设置选择呢?
虽然Grid 类的官方文档确实没有说明此方法,但您仍然可以通过编程方式进行操作。我不会争论它是否是一个错误。首先你需要知道你的SelectionMode
. 然后您可以选择一行(或多行):
@Override
protected void init(VaadinRequest request) {
final VerticalLayout layout = new VerticalLayout();
Customer c = new Customer(1);
container = new BeanItemContainer<>(Customer.class, Arrays.asList(c, new Customer(2)));
grid = new Grid(container);
grid.setSelectionMode(SelectionMode.SINGLE);
SingleSelectionModel m = (SingleSelectionModel) grid.getSelectionModel();
m.select(c);
layout.addComponents(grid);
setContent(layout);
}
在较新的 Vaadin(在我的情况下为 7.5.6)中,select(Object)
方法直接在Grid
interface中。
例子:
Grid grid = new Grid(container);
grid.setSelectionMode(Grid.SelectionMode.SINGLE);
grid.select(row);
例如,该row
对象可以取自SelectionListener
事件或添加到对象之前(如@kukis 回答)。
Vaadin 之书提到了 setter 方法Grid::setSelectedRows
和 getter。
当前选定的行可以通过一组项 ID 使用 setSelectedRows() 设置,并使用 getSelectedRows() 读取。
但是,Grid
类文档没有列出该方法。NetBeans 8.0.2 也没有在其自动完成中建议该方法。
所以显然是一个错误。见票号18,580。