我想要一个选择网格,起初我没有包含任何选择模型配置,因为它是the default。这适用于鼠标选择,但如果我键SHIFT + END
它会选择所有记录(或PAGE UP
,HOME
或END
具有类似的效果。)
然后在不重新加载网格的情况下取消选择所选记录(除非我想要一个配置有allowDeselect: true
的网格 - 我不这样做。)
认为ExtJS文档存在关于默认值的问题,然后我明确地选择了SINGLE
选择的网格面板,但仍然存在问题。
我检查了他们的一些示例网格here,它们都有相同的问题 - 任何单个选择网格都会阻止鼠标多选,但可以使用shift键和HOME
,{{进行多选1}},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;
}
});
禁用所有键盘导航我只是不想用键盘多选。
答案 0 :(得分:2)
您可以使用:
selModel: {
enableKeyNav: false
},
在网格配置中。 但这对我来说是意想不到的选择模型行为......
<强>更新强>
作为一个非常简单的版本:
selModel: {
selectRange: function() {
return false;
}
},