Vaadin 23中如何禁用Grid单个单元格选择,仅允许整行选择?
Vaadin 23 Grid 禁用单个单元格选择,仅允许整行选择
你遇到的问题是因为Grid.SelectionMode.SINGLE仅限制了最多选择一行,但默认情况下单元格仍会获得焦点并显示选中样式。要实现仅允许整行选择、禁用单个单元格的选中/焦点状态,可通过以下配置完成:
保持已设置的行选择模式
你已添加的代码无需修改:grid.setSelectionMode(Grid.SelectionMode.SINGLE);禁用所有单元格的可聚焦性
通过遍历Grid的所有列,设置单元格不可聚焦,阻止单个单元格获得焦点:grid.getColumns().forEach(column -> column.setFocusable(false));(可选)优化视觉样式(移除单元格选中效果)
如果仍有单元格选中的视觉残留,可在全局样式文件(如styles.css)中添加以下CSS,彻底移除单元格的选中和焦点样式:vaadin-grid.no-cell-selection td { user-select: none; /* 禁止单元格文本被选中 */ } vaadin-grid.no-cell-selection td:focus { outline: none; /* 移除单元格焦点边框 */ }同时给Grid添加对应的样式类:
grid.addClassName("no-cell-selection");
完成以上配置后,点击Grid区域时只会触发整行选择,单个单元格不会再被选中或获得焦点。
内容的提问来源于stack exchange,提问作者alexanoid
相关产品推荐
相关产品推荐

