避免GWT DataGrid行滚动

时间:2014-05-03 11:04:49

标签: gwt datagrid scroll mousewheel

GWT DataGrid中我想避免/防止表格数据行在某些特殊的应用程序状态下滚动。

我已经尝试捕获ScrollEvent,但我认为此类事件是在“滚动行”之后触发的。

我还试图“隐藏”用户可以管理的每个“工具”以便滚动行;所以我试过了:

.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);

scrollPanel.removeVerticalScrollbar();

但鼠标滚轮动作仍会保持火行滚动...因此可能应该足以避免鼠标滚轮动作达到我的目标?

请注意,我不想删除水平滚动。

任何建议都将受到赞赏。

提前致谢

1 个答案:

答案 0 :(得分:1)

这是两个解决方案。尝试任何一个

DOM.sinkEvents(getDocElement(), Event.ONMOUSEWHEEL);

Event.addNativePreviewHandler(new Event.NativePreviewHandler() {

    @Override
    public void onPreviewNativeEvent(final NativePreviewEvent event) {
        if (event.getTypeInt() == Event.ONMOUSEWHEEL) {
            event.getNativeEvent().preventDefault();
        }
    }
});

dataGrid.sinkEvents(Event.ONMOUSEWHEEL);

不是一个好的解决方案,但你也可以尝试这个。

dataGrid.addCellPreviewHandler(new Handler<Contact>() {

    @Override
    public void onCellPreview(CellPreviewEvent<Contact> event) {
        dataGrid.getRowElement(0).scrollIntoView();
    }
});