如何在可见范围更改时避免CellList / Table自动滚动到所选项目

时间:2012-08-03 08:40:09

标签: gwt gwt-celltable

我正在使用CellList展示示例(http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellList)实现具有无限滚动功能的自定义CellTable。但是,我在CellList / Table中发现了一个在这种情况下不合需要的功能:在单击项目后更改可见范围会导致List / Table自动滚动到所选项目。

您可以尝试上面的展示示例来查看完全相同的行为。当没有选择任何项目时,无限滚动工作正常,但是当您单击某个项目然后滚动它时,它将始终在更改范围时跳回到所选项目。

我还发现只有当焦点仍在项目上时才会发生,也就是说,如果您选择一个项目,然后单击其他地方以失去焦点,则不会发生。

我一直在挖掘GWT代码并试图找出如何禁用此功能但没有成功。有没有人以前处理过这种情况?

2 个答案:

答案 0 :(得分:3)

作为一种简单的解决方法,您可以在某个元素上调用focus(),从项目中移除焦点(不删除选择)。

在展示示例中,在ShowMorePagerPanel中添加例如

scrollable.getElement().focus();

onScroll(ScrollEvent event)方法的开头。

答案 1 :(得分:0)

我遇到了同样的问题,无法得到克里斯的答案来解决,但是以下解决方案对我有用:

在您的onScroll(ScrollEvent event)方法中,添加类似于以下内容的行,假设yourTable是扩展AbstractHasData的实例的一个实例

yourTable.setFocus(false);