海水正藍

          面朝大海,春暖花開
          posts - 145, comments - 29, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          讓Extjs EditorGridPanel 編輯時支持方向鍵

          Posted on 2013-08-27 13:10 小胡子 閱讀(325) 評論(0)  編輯  收藏 所屬分類: Ext
          在用 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+11, 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+11, 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+11, smodel.acceptsNav, smodel);
                             
          break;
                  }
                 
          if (newCell) {
                      g.startEditing(newCell[
          0], newCell[1]);
                 }
               }
          });
          注意:這里重寫的是:CellSelectionModel ,而不是RowSelectionMode
          原文出自:
          http://www.cnblogs.com/liongis/p/3284620.html
          主站蜘蛛池模板: 阿克陶县| 淮北市| 团风县| 杂多县| 格尔木市| 垦利县| 青龙| 乡城县| 巴马| 深州市| 辉县市| 凤山市| 探索| 铅山县| 临沭县| 九台市| 上饶市| 长兴县| 海盐县| 昌黎县| 时尚| 玛纳斯县| 楚雄市| 岳池县| 桐庐县| 城市| 兴国县| 延吉市| 慈溪市| 蓬溪县| 湖州市| 简阳市| 桐乡市| 盐源县| 秦皇岛市| 庆云县| 鹤峰县| 察雅县| 阿拉善右旗| 岢岚县| 通辽市|