海水正藍

          面朝大海,春暖花開
          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
          主站蜘蛛池模板: 金门县| 通化县| 岳普湖县| 中卫市| 天水市| 高州市| 阿荣旗| 息烽县| 彩票| 莱阳市| 云龙县| 剑川县| 大同市| 顺平县| 化德县| 喀什市| 韩城市| 大英县| 霞浦县| 长乐市| 峨山| 宁陕县| 韶关市| 黄浦区| 家居| 潞西市| 洪洞县| 罗甸县| 青浦区| 内江市| 家居| 曲阜市| 手游| 翁牛特旗| 南部县| 汉源县| 淳化县| 定西市| 齐齐哈尔市| 宁安市| 静安区|