ExtJS grid Enter tab设置

来源:互联网 发布:32e380s怎么看网络电影 编辑:程序博客网 时间:2024/04/29 06:44

本文转载自:http://www.myext.cn/Article/1003.html

ExtJS的grid的按键,默认是Enter(Shift+Enter)上下移动光标,TAB(Shift+Tab)左右移动光标。

但大多数时候,用户希望Enter左右移到,所以作此转换。

      在建立grid后,直接调用下属代码,你也可以按照下面思路,自己做上下箭头移动。

        //grid 是你的EditorGrid的名。

       var sm = grid.getSelectionModel();

         sm.onEditorKey = function(field, e) {
             var k = e.getKey(), newCell, g = sm.grid, ed = g.activeEditor;
             if (k == e.ENTER) {
                 e.stopEvent();
                 ed.completeEdit();
                 if (e.shiftKey) {
                     newCell = g.walkCells(ed.row, ed.col - 1, -1, sm.acceptsNav, sm);
                 } else {
                     newCell = g.walkCells(ed.row, ed.col + 1, 1, sm.acceptsNav, sm);
                 }
             } else if (k == e.TAB) {
                 e.stopEvent();
                 ed.completeEdit();
                 if (e.shiftKey) {
                     newCell = g.walkCells(ed.row-1, ed.col, -1, sm.acceptsNav, sm);
                 } else {
                     newCell = g.walkCells(ed.row+1, ed.col, 1, sm.acceptsNav, sm);
                 }
                 if (ed.col == 1) {
                     if (e.shiftKey) {
                         newCell = g.walkCells(ed.row, ed.col + 1, -1, sm.acceptsNav, sm);
                     } else {
                         newCell = g.walkCells(ed.row, ed.col + 1, 1, sm.acceptsNav, sm);
                     }
                 }
             } else if (k == e.ESC) {
                 ed.cancelEdit();
             }
             if (newCell) {
                 g.startEditing(newCell[0], newCell[1]);
             }

         };