Angular Ag网格在按键时禁用编辑

Angular Ag网格在按键时禁用编辑,angular,ag-grid,Angular,Ag Grid,在Ag网格中,如何禁用按下的编辑键和按下的可打印键的编辑功能?只有在调用api.startEditingCell()时,我才需要编辑行。我在。中没有找到可编辑的列属性可以是布尔值,也可以是函数 您可以将editable设置为默认情况下返回false的函数,如果通过某个外部进程/操作启动了编辑操作,则可以通过 const suppressKeyboardEvent = (params: SuppressKeyboardEventParams) => { const SuppressK

在Ag网格中,如何禁用按下的编辑键和按下的可打印键的编辑功能?只有在调用api.startEditingCell()时,我才需要编辑行。我在。

中没有找到
可编辑的
列属性可以是布尔值,也可以是函数


您可以将editable设置为默认情况下返回false的函数,如果通过某个外部进程/操作启动了编辑操作,则可以通过

const suppressKeyboardEvent = (params: SuppressKeyboardEventParams) => {
    const SuppressKeyWhileNoEdit = [".", "/", "*", "-", "+", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]; // disallow numpad keys but still allow numpad control keys

    const alphaKeys = ["KeyA", "KeyB", "KeyC", "KeyD", "KeyE", "KeyF", "KeyG", "KeyH", "KeyI", "KeyJ", "KeyK", "KeyL", "KeyM", "KeyN", "KeyO", "KeyP", "KeyQ", "KeyR", "KeyS", "KeyT", "KeyU", "KeyV", "KeyW", "KeyX", "KeyY", "KeyZ"];
    const digitKeys = ["Digit0", "Digit1", "Digit2", "Digit3", "Digit4", "Digit5", "Digit6", "Digit7", "Digit8", "Digit9"];
    const specialKeys = ["Backquote", "Minus", "Equal", "Backspace", "BracketLeft", "BracketRight", "Semicolon", "Quote", "Backslash", "Comma", "Period", "Slash", "IntlBackslash", "Delete"];

    const SuppressCodeWhileNoEdit = alphaKeys.concat(digitKeys.concat(specialKeys));

    const keyPressKey = params.event.key;
    const keyPressCode = params.event.code;

    return !params.editing && (SuppressCodeWhileNoEdit.includes(keyPressCode) || SuppressKeyWhileNoEdit.includes(keyPressKey));
};