在Vaadin 8和10中的Grid的视口中获取可见的项目

时间:2018-07-28 05:28:00

标签: vaadin viewport vaadin-grid

Vaadin 8和10中的 Grid 小部件提供了一种方法来获取Set的当前选定项目:Grid::getSelectedItems

以类似的方式,我想获得网格中用户当前可见的项目的集合。假设我的Grid小部件包含10个项目,但是只有5个可见,因为Grid小部件太短而无法全部显示。我想知道用户可以看到的五个。

1 个答案:

答案 0 :(得分:0)

这不是一件微不足道的任务,我有类似的事情,但以前并非完全如此。首先,我将创建自定义布局组件,例如除了报告滚动事件之外,通过以与此处讨论的类似方式扩展CssLayout(How to make UI receive scroll events),我还将报告布局在视口上的位置(请参见http://www.gwtproject.org/javadoc/latest/com/google/gwt/dom/client/Element.html)。是的,需要GWT和客户端开发。

我将使用此布局作为Grid的包装,即Grid将位于布局中。您也可以扩展Grid组件。但是我认为进行布局包装可以为您提供一个不错的工具,您可以将其与其他组件一起使用,并确定它们是否真正可见。

这样,我便可以计算出布局的哪一部分在视口中。如您所见,这里有很多情况,例如仅网格底部或网格顶部可见。然后,我需要知道行高,标题高度等。这使我能够计算可见的行数。希望您能明白。当列举所有可能性时,通用情况的结果将是一段相当长的代码。您可以在服务器端进行此计算。