Thanks, that worked. A couple questions...
1) I think the keyCode property is being deprecated (according to https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode)
can I assume your underlying get_keyCode() function will begin using the new property (.key, I think) instead whenever it is introduced.
2) In general I think KeyPress is also being frowned upon and replaced by KeyDown. Will you be implementing such an event for the grid?
3) You may want to build it into the grid so that the ESC key cancels out of some of these events firing (like BatchEditCellValueChanging). Or, provide an example on your site. It would seem more intuitive. the ESC should be like a "Cancel" out of the box.