避免GWT数据网格行滚动

避免GWT数据网格行滚动,gwt,datagrid,scroll,mousewheel,Gwt,Datagrid,Scroll,Mousewheel,在gwtdatagrid中,我希望在某些特殊的应用程序状态下避免/防止表格数据行滚动 我已经尝试捕获ScrollEvent,但我认为这样的事件是在“完成”行滚动之后触发的 我还试图“隐藏”用户可以管理的每一个“工具”,以使行滚动;所以我试着: .setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED); 及 但鼠标滚轮的动作仍然会使火行滚动。。。所以也许应该足够避免鼠标滚轮滚动动作来达到我的目标 请注意,我不想删除水平滚动 如有任

gwtdatagrid
中,我希望在某些特殊的应用程序状态下避免/防止表格数据行滚动

我已经尝试捕获
ScrollEvent
,但我认为这样的事件是在“完成”行滚动之后触发的

我还试图“隐藏”用户可以管理的每一个“工具”,以使行滚动;所以我试着:

.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);

但鼠标滚轮的动作仍然会使火行滚动。。。所以也许应该足够避免鼠标滚轮滚动动作来达到我的目标

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

如有任何建议,将不胜感激


提前感谢

这里有两个解决方案。随便一个试试

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();
    }
});
dataGrid.addCellPreviewHandler(新处理程序(){
@凌驾
公共void onCellPreview(CellPreviewEvent事件){
dataGrid.getRowElement(0.scrollIntoView();
}
});

是!!!好的,你的第一个解决方案。。。这就是我要找的。谢谢。
dataGrid.addCellPreviewHandler(new Handler<Contact>() {

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