如何滚动到Vaadin网格中当前选定的行?

如何滚动到Vaadin网格中当前选定的行?,vaadin,vaadin8,vaadin-grid,Vaadin,Vaadin8,Vaadin Grid,问题是编辑器在显示时覆盖了网格的一半。如何在显示选定行之前滚动到该行 我知道你可以使用这个.grid.scrollTorowId;,但我找不到获取当前选定行id的方法 在Vaadin 8中,您应该能够使用gridgetSelectedItems grid.scrollTo(rowForValue, ScrollDestination.START); 方法获取所选项目,如果选择模式为单选,则返回一个项目集。是的,我知道此方法,但找不到获取当前所选行id的方法。@Hex,这取决于数据如何存储在正在

问题是编辑器在显示时覆盖了网格的一半。如何在显示选定行之前滚动到该行

我知道你可以使用这个.grid.scrollTorowId;,但我找不到获取当前选定行id的方法


在Vaadin 8中,您应该能够使用gridgetSelectedItems

grid.scrollTo(rowForValue, ScrollDestination.START);

方法获取所选项目,如果选择模式为单选,则返回一个项目集。

是的,我知道此方法,但找不到获取当前所选行id的方法。@Hex,这取决于数据如何存储在正在使用的数据提供程序中。对于ListDataProvider,可以迭代这些项并以这种方式找到索引。对于较大的数据集,应使用更有效的方法查找索引;例如,使用某些标识符作为键,位置作为值的映射。@Mika网格排序顺序可能已被用户更改,在这种情况下,rowId!=ListDataProvider中的项目索引,或者我遗漏了什么?使用getSelectedItems,如何获取grid.scrollTorowId方法的rowId?由于也可以进行编程选择,因此在所有情况下都不容易解析所选项目的行索引。唯一的防弹方法是使用grid.getDataCommunicator.fetchItemsWithRange1、gridGetDataCommunicator.etDataProviderSize,它以正确的顺序返回项目列表,并在其中进行搜索。这自然很重,有些情况下真的很重。在那里,行索引在项目单击中总是已知的,因此我们对版本8.4进行了改进。接下来是ItemClickEvent.getRowIndex方法。为什么网格的SelectionListener中没有这个.getRowIndex方法?这也将非常有用。
grid.scrollTo(rowForValue, ScrollDestination.START);
public Set<T> getSelectedItems()