• 让Extjs EditorGridPanel 编辑时支持方向键


    在用 extjs editorgridpanel 进行输入编辑的时候, 默认情况下只支持使用 tab 键可以实现焦点切换, 如果想让editorgridpanel 在编辑时通过方向键来实现焦点跳转切换,只需加上以下代码:

    //让grid支持方向键盘 by liongis@163.com
    Ext.override(Ext.grid.CellSelectionModel, {
        onEditorKey : function(field, e) {
            var smodel = this;
            var k = e.getKey(), newCell, g = smodel.grid, ed = g.activeEditor;
            switch(k){
                case e.TAB:
                     e.stopEvent();
                     ed.completeEdit();
                     if (e.shiftKey) {
                         newCell = g.walkCells(ed.row, ed.col-1, -1, smodel.acceptsNav, smodel);
                     } else {
                         newCell = g.walkCells(ed.row, ed.col+1, 1, smodel.acceptsNav, smodel);
                     }
                     if (ed.col == 1) {
                         if (e.shiftKey) {
                             newCell = g.walkCells(ed.row, ed.col+1, -1, smodel.acceptsNav, smodel);
                         } else {
                             newCell = g.walkCells(ed.row, ed.col+1, 1, smodel.acceptsNav, smodel);
                         }
                     }
                    break;
                case e.UP:
                     e.stopEvent();
                     ed.completeEdit();
                     newCell = g.walkCells(ed.row-1, ed.col, -1, smodel.acceptsNav, smodel);
                    break;
                case e.DOWN:
                     e.stopEvent();
                     ed.completeEdit();
                     newCell = g.walkCells(ed.row+1, ed.col, 1, smodel.acceptsNav, smodel);
                    break;
                case e.LEFT:
                     e.stopEvent();
                     ed.completeEdit();
                     newCell = g.walkCells(ed.row, ed.col-1, -1, smodel.acceptsNav, smodel);
                     break;
                 case e.RIGHT:
                     e.stopEvent();
                     ed.completeEdit();
                     newCell = g.walkCells(ed.row, ed.col+1, 1, smodel.acceptsNav, smodel);
                       break;
            }
           if (newCell) {
                g.startEditing(newCell[0], newCell[1]);
           }
         }
    });

    注意:这里重写的是:CellSelectionModel ,而不是RowSelectionModel

  • 相关阅读:
    p2394 精度题
    线性筛素数
    poj3468 线段树的懒惰标记
    逆元
    2018 Multi-University Training Contest 2
    2018 Multi-University Training Contest 1
    判断素数遇到的问题
    Mergeable Stack(链表实现栈)
    组合数
    poj2594 机器人寻找宝藏(最小路径覆盖)
  • 原文地址:https://www.cnblogs.com/liongis/p/3284620.html
Copyright © 2020-2023  润新知