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
。如果我不持有ctrl
或shift
中的任何一个键并执行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(是不是多选)属性?