我的grid是cellmodel 也就是单元格选择  因为extjs已经封装单元格的上下左右移动  所以我找不到keydown的事件(看了半天api grid好像根本不提供关于键盘的事件  试了一下 keymap keynav 这两个类也不管用)  目前有个需求 就是假如移动到最后一个单元格上 我点左或者下方向键 要执行一些操作 请问有什么办法吗?

解决方案 »

  1.   

    不如试试这样做:就用gridPanel的keydown事件,然后判断它的选中项是否为对应的tablecell。
    gridPanel的选择模式CellSelectionModel有一个方法getSelectedCell(),返回选中单元格的行和列
      

  2.   

    gridPanel 没有keydown事件呢。 我找了很久api也没找到
      

  3.   

    我没用过ext4.0,刚才看了下,你试试:Ext.override(Ext.grid.Panel,{
        initComponent: function() {
            var me = this;
            me.addEvents('keydown');
            if (me.columnLines) {
                me.setColumnLines(me.columnLines);
            }        me.callParent();
        },
        afterRender:function(){
            this.mon(this.el,'keydown',this._onkeydown,this);
            this.callParent();
        },
        _onkeydown:function(){
            this.fireEvent('keydown',this);
        }
    });在任意地方或js文件中添加上面的代码,我在ext4.0的例子中试过,没什么问题。定义gridPanel的时候还是一样定义个listeners就ok了