使用 Vaadin 24:
我尝试使用 GridContextMenu
grid.addContextMenu()
,它通过右键单击打开,但是它不会选择我单击的行,并且我在 GridContextMenu 实例上找不到要设置的此类选项。
其次,我尝试添加单击侦听器并检查鼠标按钮,但是我不知道如何获取我单击的行索引:
grid.addItemClickListener(event -> {
val column = event.getColumn(); // can get only column
val buttonCode = event.getButton();
if (buttonCode == 2) { // 2 is secondary button / right button
// select here
}
});
请记住,网格列是可排序的 -
setSortable(true)
和可重新排序的 - setColumnReorderingAllowed(true)
。请帮忙,谢谢。
如果添加 GridContextMenu,您可以注册一个侦听器:
addGridContextMenuOpenedListener( new ComponentEventListener<GridContextMenu.GridContextMenuOpenedEvent<Object>>(){
@Override
public void onComponentEvent(GridContextMenuOpenedEvent<Object> event) {
if (event.getItem().isPresent()) {
Grid<Object> grid = ((Grid<Object>) getTarget());
grid.select( event.getItem().get() );
}
}
} );
尝试使用 GridContextMenu 中的 addGridContextMenuOpenedListener 。
final var menu = grid.addContextMenu();
menu.addGridContextMenuOpenedListener(event -> event.getItem().ifPresent(grid::select));