我想要一个单一的选择网格,起初我没有包含任何选择模型配置,因为这是默认的。这适用于鼠标选择,但如果我键入SHIFT + END
它会选择所有记录(或PAGE UP
,HOME
或END
具有类似效果)。
然后,如果不重新加载网格,就无法取消选择选定的记录(除非我想要一个配置有的网格allowDeselect: true
- 我没有)。
认为这是关于默认值的 ExtJS 文档的问题,然后我使用SINGLE
select 显式配置了网格面板,但仍然存在问题。
我在这里查看了他们的一些示例网格,它们都有相同的问题 - 任何单个选择网格都会阻止鼠标多选,但可以使用 shift 键和HOME
、或进行多选。然后不可能取消选择记录。END
PAGE UP
PAGE DOWN
似乎是框架中的一个错误,我将提交一份报告,但由于网格是最常用的组件之一,我认为有人对此有解决方法。
绝望中,我还尝试在全球范围内收听keypress
并停止该事件,但这甚至都行不通。例如,这将记录到控制台,但事件仍然运行:
Ext.getDoc().on('keypress', function(event, target) {
var key = event.getKey();
// do not allow multiple grid selection
if (event.shiftKey && (
key == event.PAGE_UP ||
key == event.PAGE_DOWN ||
key == event.HOME ||
key == event.END)) {
console.log('unsuccessfully trying to stop the event!');
event.stopEvent();
event.stopPropagation();
event.shiftKey = false;
return false;
}
});
编辑:
我不想禁用所有键盘导航,enableKeyNav: false
我只是不想用键盘进行多选。