GWT - Datagrid:键盘单选,启用多选时

Posted

技术标签:

【中文标题】GWT - Datagrid:键盘单选,启用多选时【英文标题】:GWT - Datagrid : Keyboard single selection, when multi selection is enabled 【发布时间】:2013-03-09 09:12:02 【问题描述】:

当我在DataGrid 上启用键盘选择策略和多选时,我遇到了这个问题。

案例一:鼠标键盘多选

当我想通过鼠标选择多行时,我按住Ctrl 键或Shift 键,这工作正常。默认通过键盘,该动作由spacebar提供。当我想通过shift 键和spacebar 的键盘组合连续选择时,就可以了。

案例 2:通过鼠标和键盘进行单选(这是问题开始的地方

当我想通过鼠标选择一行时,我只需执行left click。如果我不持有ctrlshift 中的任何一个键并执行left click,即使选择了多行,它也会被取消选择,并且只选择当前行。这是预期的行为,我对此没有任何问题。

但是同样的事情是不能通过键盘实现的。 没有办法通过键盘选择一行。如果我按spacebar 选择一行,并且如果我在没有shift/ctrl 键的其他行上再次按spacebar,它会被多选,并且前一个选择的行不会被取消选择。

我的问题是:如何通过类似于鼠标的键盘实现单选?

编辑:我opened this issue in gwt issues。我希望他们对此作出回应。

【问题讨论】:

+1 abhi。太清楚了:) 【参考方案1】:

您必须 use 一个 custom selection event manager 其 translator 从 clearCurrentSelection 返回您想要的行为的适当值。

default behavior 是始终从键盘添加/删除选择,并使用 control 或 meta 键切换是否在使用鼠标时清除当前选择。

【讨论】:

我一定会尝试这种方法。但我有个问题。我的期望不应该是默认行为吗?在 Web 或桌面应用程序中的任何地方,除非您按住 ctrl 或 shift 之类的其他键,否则它不应该始终是单个选择吗?我应该在 gwt 问题列表中创建一个关于相同问题的问题,还是有任何具体原因为什么它是这样设计的 我完全不知道。随意打开一个问题,但要准备好等待很长时间。这类事情,尤其是在有变通办法的情况下,优先级较低。支持您提出在野外您认为应该是正确行为的示例。

以上是关于GWT - Datagrid:键盘单选,启用多选时的主要内容,如果未能解决你的问题,请参考以下文章

(this.internalValue || []).findIndex 不是在 v-select 上启用多选时的函数

jquery easyui combobox多选时,选第一个,前面有分隔符

EasyUi下如何改变Datagrid的singSelect(是不是多选)属性?

Primefaces 动态列不适用于延迟加载

iview tree 组件如何初始化选中一个,单选不是多选的

select下拉框多选取值