2013-11-27 2 views
0

Я пытаюсь поймать событие нажатия клавиши Tab. Это то, что я пробовал:Как поймать событие нажатия клавиши Tab в сетке Ext JS 3

this.test.on('keypress', function(t,e) { 
    if (e.getKey() == Ext.EventObject.ENTER) { 
     alet('kk'); 
    } 
}, this); 

Помогите поймать событие нажатия клавиши Tab в ячейках сетки.

This my EditorGridPanel override function 

     Ext.override(Ext.grid.EditorGridPanel, { 
      initEvents : function(){ 
       Ext.grid.EditorGridPanel.superclass.initEvents.call(this); 
       this.on("bodyscroll", this.stopEditing, this, [true]); 
       this.on("columnresize", this.stopEditing, this, [true]); 
       this.view.scroller.on("mousedown", this.onMouseDownEditClick, this); 

       this.on('keypress', function(t,e) { 
//     if (e.getKey() == Ext.EventObject.TAB) { 
         alert('kk'); 
//     } 
       }, this);     

       //Reload datastore without redrawing grid 
       this.getView().on('beforerefresh', function(view) { 
       view.scrollTop = view.scroller.dom.scrollTop; 
       view.scrollHeight = view.scroller.dom.scrollHeight; 
       }); 
       this.getView().on('refresh', function(view) { 
        setTimeout(function() { 
         view.scroller.dom.scrollTop = view.scrollTop + (view.scrollTop == 0 ? 0 : view.scroller.dom.scrollHeight - view.scrollHeight); 
        }, 100); 
       }); 

       if(this.clicksToEdit == 'mousedown'){ 
        this.view.scroller.on("mousedown", this.onMouseDownEditClick, this); 
       }else if(this.clicksToEdit == 1){ 
        this.on("cellclick", this.onCellDblClick, this); 
       }else { 
        if(this.clicksToEdit == 'auto' && this.view.mainBody){ 
         this.view.mainBody.on("mousedown", this.onAutoEditClick, this); 
        } 
        this.on("celldblclick", this.onCellDblClick, this); 
       } 
      }, 
      onMouseDownEditClick : function(e, t){ 
       if(e.button !== 0){ 
        return; 
       } 
       var row = this.view.findRowIndex(t); 
       var col = this.view.findCellIndex(t); 
       edit_row = row; 
       edit_col = col; 
       if(row !== false && col !== false){ 
        this.startEditing(row, col); 
       } 
      } 

     }); 

ответ

0

Я вижу опечатку в вашем коде. Вместо

alet('kk'); 

использование

alert('kk'); 

Но в любом случае, вы пытались использовать что-то вроде этого?

this.test.on('keypress', function(t,e) { 
    if (e.getKey() == Ext.EventObject.TAB) { 
     alert('kk'); 
    } 
}, this); 
+0

спасибо за обратную связь, на самом деле я стараюсь с предупреждением, но это не дает мне никакого предупреждения. но я переопределяю EditerGridPanel для включения разрешения щелчка в моей сетке. теперь я редактирую свой вопрос с помощью этого кода – Duleep

0

У меня была аналогичная проблема с этим, так как «» нажатие клавиши события только пожары, когда событие происходит на EditorGridPanel (не отдельные клетки).

Я положил прослушиватель событий в GridView EditorGridPanel, в частности, для моих целей, прослушивающих событие «rowupdated» (http://docs.sencha.com/extjs/3.4.0/#!/api/Ext.grid.GridView-event-rowupdated). Надеюсь, это поможет кому-то другому.