我想單個選擇網格,起初我沒有包含任何選擇模型配置,因爲那是the default。這適用於鼠標選擇,但如果我鍵SHIFT + END
它選擇所有記錄(或PAGE UP
,HOME
或END
具有類似的效果)。防止鍵盤多選網格面板
如果沒有重新加載網格,選定的記錄無法取消選擇(除非我想要一個配置爲allowDeselect: true
的網格 - 我不這麼做)。
認爲這是ExtJS有關默認文檔的問題,然後我配置了網格面板SINGLE
明確選擇,但仍然有問題。
我檢查了他們的一些例子格架here,他們都有同樣的問題 - 任何一個選擇電網將防止鼠標多選,但可以用shift鍵和HOME
,END
,PAGE UP
或PAGE DOWN
被multiselected。然後是不可能取消選擇記錄。
似乎是一個框架中的錯誤,我將提交一份報告,但由於網格是最常用的組件之一,我認爲有人對此有一個解決方法。
無奈之下,我也嘗試在全球範圍內傾聽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
禁用所有鍵盤導航我只是不想一起多選鍵盤。
我本來應該在問題更加清晰。我確實希望能夠用鍵盤導航(只是沒有多個鍵盤選擇) – Geronimo
@Geronimo我更新了我的答案。 – Vlad
天才!謝謝。 – Geronimo