gpt4 book ai didi

extjs - 防止网格面板的键盘多选

转载 作者:行者123 更新时间:2023-12-02 02:06:43 24 4
gpt4 key购买 nike

我想要一个单一的选择网格,起初我没有包括任何选择模型配置,因为那是 the default .这适用于鼠标选择,但如果我键入 SHIFT + END,它会选择所有记录(或 PAGE UPHOMEEND 有类似的效果)。

然后,如果不重新加载网格,则无法取消选择所选记录(除非我想要一个配置有 allowDeselect: true 的网格 - 我不想要)。

认为这是 ExtJS 文档的默认问题,然后我使用 SINGLE 显式选择配置了 gridpanel,但问题仍然存在。

我查看了他们的一些示例网格 here , 他们都有同样的问题 - 任何单选网格都会阻止鼠标多选,但可以使用 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 禁用所有键盘导航,我只是不想使用键盘进行多选。

最佳答案

您可以使用:

selModel: {
enableKeyNav: false
},

在网格配置中。但这对我来说是意想不到的选择模型行为......

更新

作为一个非常简单的版本:

selModel: {
selectRange: function() {
return false;
}
},

关于extjs - 防止网格面板的键盘多选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14639779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com