2011-08-02 36 views
4

我有一個問題..但如果我使用「KEYUP」所有的偉大工程事件,除了我不能使用它.. 似乎一些控制捕獲事件並停止繼續爲他人或?爲什麼?網格「的keydown」事件沒有趕上特殊鍵,如箭頭鍵或與「<strong>的keydown</strong>」事件捕捉特殊鍵Enter或Tab

Ext.onReady(function() { 

    Ext.define('User', { 
     extend: 'Ext.data.Model', 
     fields: [ 
     { name: 'id', type: 'int' }, 
     { name: 'name', type: 'string' }, 
     { name: 'phone', type: 'string', mapping: 'phoneNumber' } 
    ] 
    }); 

    var data = { 
     users: [ 
     { 
      id: 1, 
      name: 'Ed Spencer', 
      phoneNumber: '555 1234' 
     }, 
     { 
      id: 2, 
      name: 'Abe Elias', 
      phoneNumber: '666 1234' 
     } 
    ] 
    }; 

    var myStore = new Ext.data.Store({ 
     autoLoad: true, 
     storeId: 'myStore', 
     model: 'User', 
     data: data, 
     proxy: { 
      type: 'memory', 
      reader: { 
       type: 'json', 
       root: 'users' 
      } 
     } 
    }); 

    var main = Ext.create('Ext.container.Viewport', { 
     renderTo: document.body, 
     layout: 'fit', 
     items: 
     [ 
      { 
       xtype: 'panel', 
       title: 'Main Panel', 
       items: [ 
       { 
        xtype: 'gridpanel', 
        id: 'myGrid', 
        name: 'myGrid', 
        title: 'My Grid', 
        store: 'myStore', 
        selModel: Ext.create('Ext.selection.CellModel', { 
         mode: 'SINGLE', 
         listeners: { 
          select: { 
           element: 'el', 
           fn: function (editor, object, options) { 
           } 
          } 
         } 
        }), 
        plugins: [ 
         Ext.create('Ext.grid.plugin.CellEditing', { 
          clicksToEdit: 1, 
          listeners: { 
           edit: { 
            element: 'el', 
            fn: function (editor, object, options) { 
            } 
           } 
          } 
         }) 
        ], 
        flex: 1, 
        listeners: { 
         keydown: { 
          element: 'el', 
          fn: function (eventObject, htmlElement, object, options) { 
           var pGrid = Ext.ComponentMgr.get('myGrid'); 
           if (eventObject.keyCode == 40) // 13, 9 
           { 
            if (pGrid.selModel.getCurrentPosition().row == pGrid.store.data.length - 1) { 
             pGrid.store.add({ name: '', age: '', zipcode: '' }); 
            } 
           } 
          } 
         } 
        }, 
        columns: [ 
         { 
          xtype: 'numbercolumn', 
          dataIndex: 'id', 
          header: 'ID', 
          sortable: true, 
          width: 100, 
          id: 'id', 
          editor: { 
           xtype: 'numberfield' 
          } 
         }, 
         { 
          xtype: 'gridcolumn', 
          dataIndex: 'name', 
          header: 'Name', 
          sortable: true, 
          width: 100, 
          id: 'name', 
          editor: { 
           xtype: 'textfield' 
          } 
         }, 
         { 
          xtype: 'gridcolumn', 
          dataIndex: 'phone', 
          header: 'Phone', 
          sortable: true, 
          width: 100, 
          align: 'right', 
          id: 'phone', 
          editor: { 
           xtype: 'textfield' 
          } 
         } 
        ] 
       }] 
      }] 
    }); 
}); 

有沒有解決方法?

+0

您測試了哪些瀏覽器? – hugomg

+0

視圖正在處理這些用於行選擇的鍵。也許這就是原因。 – Marko

+0

@Marko是的,你是對的,它處理單元之間導航的這些鍵..我很傷心......那麼解決方案是什麼?覆蓋視圖導航過程或? – mastak

回答

1

只是一個想法。你是否試過KeyPress而不是/以及KeyDown?

相關問題