vaadin - 如何使用 Vaadin Flow Grid 示例左键单击以处理列可见性示例
问题描述
在https://vaadin.com/docs/latest/ds/components/grid/#column-visibility上的列可见性示例中,代码显示了一个ColumnToggleContextMenu
不属于 Vaadin API 的类,但它似乎以某种方式调整了按钮被钩住,以便可以左键单击而不是默认右键单击上下文菜单。考虑到这一点,下面的代码只会在右键单击时显示上下文菜单,我无法让它像示例代码一样工作。我的代码是:
Button showHideColumnsButton = new Button("Show/Hide Columns");
showHideColumnsButton.addThemeVariants(ButtonVariant.LUMO_TERTIARY);
ContextMenu contextMenu = new ContextMenu(showHideColumnsButton);
for(Grid.Column column : grid.getColumns()) {
contextMenu.addItem(getColumnName(column), e -> showHideColumn(column));
}
我正在考虑使用 MenuBar 来查看这是否可行,但如果可能的话,我更愿意弄清楚如何使用 Button 因为这似乎更合适(主要是因为它允许复选框显示列是可见还是隐藏)。
解决方案
为了使上下文菜单在左键单击时打开,请使用setOpenOnClick(true)
:
Button showHideColumnsButton = new Button("Show/Hide Columns");
showHideColumnsButton.addThemeVariants(ButtonVariant.LUMO_TERTIARY);
ContextMenu contextMenu = new ContextMenu(showHideColumnsButton);
contextMenu.setOpenOnClick(true)
for(Grid.Column column : grid.getColumns()) {
contextMenu.addItem(getColumnName(column), e -> showHideColumn(column));
}
推荐阅读
- javascript - 在“addEventListener”中调用时函数不起作用
- ios - 当我用逗号分隔电子邮件地址时如何添加文本气泡样式,如所附屏幕截图所示
- python - 如何获得 CatBoost 模型的系数?
- html - HTML/CSS 按钮有效,但除非刷新页面,否则不会显示任何效果
- html - 当我悬停一个弹性项目时如何实现这一点?
- typescript - 如何在 node_modules 中键入 JS 文件?
- iis - IIS 和证书,仅使用 netBOIS 名称保护本地访问的网站
- d3.js - 为什么 stack() 不在 d3.js 中创建访问器?
- android - 如何在 Kotlin 中合并流和通道?
- sed - 如何使用 sed 替换 config.yml 中以某种模式开头的特定值