AG Grid自定义单元格编辑器如何区分+键与NumpadAdd键?
区分AG Grid自定义编辑器中普通+键与小键盘+键的方法
AG Grid的eventKey是经过标准化处理的按键字符,因此普通+键(Shift+Equal)和小键盘+键都会返回+,无法直接通过它区分。要实现区分,直接访问原始键盘事件对象的code和shiftKey属性即可:
- 小键盘+键的原始事件
code属性为NumpadAdd,无需配合Shift键 - 普通+键本质是
Shift+Equal组合键,原始事件code为Equal且shiftKey为true
在自定义编辑器的agInit方法中,通过params.event获取原始键盘事件,再做判断:
class CustomCellEditor { agInit(params) { const rawKeyboardEvent = params.event; if (!rawKeyboardEvent) return; let keyType = ''; if (rawKeyboardEvent.code === 'NumpadAdd') { keyType = '小键盘+键'; // 执行小键盘+对应的逻辑 } else if (rawKeyboardEvent.code === 'Equal' && rawKeyboardEvent.shiftKey) { keyType = '普通+键'; // 执行普通+对应的逻辑 } console.log(`触发编辑的按键:${keyType}`); // 其他编辑器初始化逻辑 } // 实现编辑器必需的其他方法(如getValue、isPopup等) }
注意:不同键盘布局下普通+键的触发方式可能略有差异,但NumpadAdd是小键盘+键的标准code值,兼容性较好。
内容的提问来源于stack exchange,提问作者Angad
相关产品推荐
相关产品推荐

