在GWT DataGrid
中我想避免/防止表格数据行在某些特殊的应用程序状态下滚动。
我已经尝试捕获ScrollEvent
,但我认为此类事件是在“滚动行”之后触发的。
我还试图“隐藏”用户可以管理的每个“工具”以便滚动行;所以我试过了:
.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
和
scrollPanel.removeVerticalScrollbar();
但鼠标滚轮动作仍会保持火行滚动...因此可能应该足以避免鼠标滚轮动作达到我的目标?
请注意,我不想删除水平滚动。
任何建议都将受到赞赏。
提前致谢
答案 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();
}
});