在Grid 7.5.3中的Vaadin窗口小部件中,我们可以通过调用SelectionEvent::getSelected
或Grid::getSelectedRows
来确定当前的行选择。
那么我们如何以编程方式设置选择?
答案 0 :(得分:5)
虽然Grid class的官方文档没有说明此方法,但您仍然可以通过编程方式进行操作。我不会争论这是不是一个错误。首先,你需要知道你的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);
}
答案 1 :(得分:4)
在较新的Vaadin(在我的情况下为7.5.6)中,select(Object)
interface直接使用Grid
方法。
示例:
Grid grid = new Grid(container);
grid.setSelectionMode(Grid.SelectionMode.SINGLE);
grid.select(row);
例如,row
对象可以从SelectionListener
事件中获取,也可以从对象之前添加(如@kukis中的答案)。
答案 2 :(得分:0)
“瓦丁书”中提到了二传手法Grid::setSelectedRows
以及一个吸气剂。
当前选定的行可以使用setSelectedRows()通过项ID集合进行设置,并使用getSelectedRows()进行读取。
但是,Grid
类doc没有列出该方法。 NetBeans 8.0.2也没有在自动完成中建议该方法。
显然是一个错误。请参见Ticket#18,580。