Javascript ExtJS4及其新的MVC:grid:如何处理键?

Javascript ExtJS4及其新的MVC:grid:如何处理键?,javascript,extjs,grid,extjs4,Javascript,Extjs,Grid,Extjs4,我正在寻找一种方法来处理网格中的键。 我在这里已经详细介绍了以下示例: 所以现在一切正常,但我想处理网格中的关键点 因此,我想在声明“this.control({})”中,我应该添加另一个与userlist有关的事件,但网格似乎没有“keypress”事件 你知道我应该怎么做吗(而且我应该如何使用新的MVC模式) 创建视图后立即在launch:function(){…}中进行定义。非常感谢。遗憾的是,我在stackoverflow上比在Sencha网站上更快地得到答案!你这么说真是太好了。我

我正在寻找一种方法来处理网格中的键。 我在这里已经详细介绍了以下示例:

所以现在一切正常,但我想处理网格中的关键点

因此,我想在声明“
this.control({})
”中,我应该添加另一个与
userlist
有关的事件,但网格似乎没有“keypress”事件

你知道我应该怎么做吗(而且我应该如何使用新的MVC模式)


创建视图后立即在
launch:function(){…}
中进行定义。

非常感谢。遗憾的是,我在stackoverflow上比在Sencha网站上更快地得到答案!你这么说真是太好了。我认为(但不要说)事情更调皮。没有答案。从未。或者完全没用。我几乎后悔花了这么多时间在一个几乎没有帮助的框架上。所以在问了4天问题后,如果我在他们的论坛上没有得到答案(8次中有7次是这样),我会觉得随风吐痰,所以我把它贴在这里。再次感谢。
Ext.define('GS.controller.Users', {

    extend: 'Ext.app.Controller',

    models: [
        'User'
    ],

    stores: [
        'Users'
    ],  

    views: [
        'user.List',
        'user.Edit'
    ],  

    init: function () {
        this.control({
            /* (!) Actions in 'userlist' */
            'userlist': {
                selectionchange: this.userListSelectionChange,
                itemdblclick: this.userEdit
            },  
            'userlist button[action=create]': {
                click: this.userCreate
            },  
            'userlist button[action=delete]': {
                click: this.userDelete
            },  
            /* (!) Actions in 'useredit' */
            'useredit button[action=create]': {
                click: this.userCreateValidate
            },  
            'useredit button[action=save]': {
                click: this.userEditValidate
            }   
        }); 
    },  

    userListSelectionChange: function(grid, selections, options) {
        var panel = grid.view.up('panel'),
            button = panel.down('button[action=delete]');

        button.setDisabled(selections.length === 0); 
    },  

    userCreate: function(button) {
        /* Using Ext.create() to pass variable create:true
         * instead of the shortcut:
         * var view = Ext.widget('useredit');
         */
        var view = Ext.create('GS.view.user.Edit', {
            create:true
        }); 
    },  

    userCreateValidate: function(button) {
        var win    = button.up('window'),
            form   = win.down('form'),
            values = form.getValues();

        this.getUsersStore().add(values);
        this.getUsersStore().sync();
        win.close();
    },  

    userEdit: function(grid, record) {
        var view = Ext.widget('useredit');
        view.down('form').loadRecord(record);
    },  
    userEditValidate: function (button) {
        var win    = button.up('window'),
            form   = win.down('form'),
            record = form.getRecord(),
            values = form.getValues();

        record.set(values);
        win.close();
        this.getUsersStore().sync();
    },

    userDelete: function(button) {
        var panel     = button.up('panel'),
            selection = panel.getSelectionModel().getSelection()[0];

        if (selection) {
            var store = this.getUsersStore();
            store.remove(selection);
            store.sync();
        }
    }
});