我有一个可调整大小的DataGrid(ResizeLayout)。我的主要问题是当我选择某个列时,它被正确选择但是它放在DataField的中间。意思是我有11个显示的项目(但在网格中有更多项目),我单击(选择)10条目,在显示的DataGrid中居中(6项,然后选中,另外6项。
我正在使用CellPreviewHandler来选择我的对象:
dataGrid.addCellPreviewHandler(new CellPreviewEvent.Handler<GWTUser>() {
@Override
public void onCellPreview(CellPreviewEvent<GWTUser> event) {
if("click".equals(event.getNativeEvent().getType())) {
dataGrid.setKeyboardSelectedRow(dataGrid.getKeyboardSelectedRow(), true);
dataGrid.setFocus(false);
presenter.selectedUser(event.getValue().getId());
}
}
});
当我将dataGrid.setKeyboardSelectedRow(dataGrid.getKeyboardSelectedRow(), true);
更改为
dataGrid.setKeyboardSelectedRow(dataGrid.getKeyboardSelectedRow(), false);
它总是跳到列表的顶部。
我基本上想从我的DataGrid中选择一些东西,任何事情都不应该发生在UI上。
感谢您的帮助。
更新
我想我找到了问题的关键。它是KeyboardSelectionPolicy
,但是当我禁用它时,我的数据网格会刷新并上升到列表的顶部。我基本上只想点击我的列从我的对象获取id并且没有重新加载/刷新或焦点或者什么。我能以某种方式定制我的政策吗?