extjs3.1以后版本 在grid中 用Enter实现Tab导航

网上发布的一些extjs 在grid中 用Enter实现Tab 的方法,如下面的网址

http://blog.csdn.net /traceofsun/archive/2010/08/13/5808648.aspx, 但是在extjs3.1以后 ,此类方法失效提示ed为null,经过查证,稍加修改(注意红色加粗部分代码),现在可以正常使用,与大家共饷


/*
作者:eycbest
时间:20100907
网址:http://www.cnblogs.com/eycbest
*/
Ext.override(Ext.grid.RowSelectionModel, {
                onEditorKey : 
function (field, e) {
                    
//  alert('go');
                     // alert( this.grid.activeEditor);
                     
                    
var  k  =  e.getKey(), newCell, g  =   this .grid, = g.lastEdit , ed  =  g.activeEditor;
                    
var  shift  =  e.shiftKey;
                    
// Ext.log('k:' + k);
                    
                    
if (ed){
                    }
else {
                        ed
= l;
                    }
                    
                    
if  (k  ==  e.ENTER) {
                        e.stopEvent();
                        
if (ed){
                            
// ed.completeEdit();
                        }
                        
if  (shift) {
                            newCell 
=  g.walkCells(ed.row, ed.col  -   1 - 1 ,
                                    
this .acceptsNav,  this );
                        } 
else  {
                            
//  alert('go');
                            newCell  =  g.walkCells(ed.row, ed.col  +   1 1 ,
                                    
this .acceptsNav,  this );
                        }
                    } 
else   if  (k  ==  e.TAB) {
                        e.stopEvent();
                        ed.completeEdit();
                        
if  ( this .moveEditorOnEnter  !==   false ) {
                            
if  (shift) {
                                newCell 
=  g.walkCells(ed.row  -   1 , ed.col,  - 1 ,
                                        
this .acceptsNav,  this );
                            } 
else  {
                                
//  alert('go');
//
                                newCell = g.walkCells(ed.row + 1, ed.col, 1,
//
                                        this.acceptsNav, this);
                                newCell  =  g.walkCells(ed.row, ed.col  +   1 1 ,
                                    
this .acceptsNav,  this );
                            }
                        }
                    } 
else   if  (k  ==  e.ESC) {
                        ed.cancelEdit();
                    }
                    
if  (newCell) {
                        g.startEditing(newCell[
0 ], newCell[ 1 ]);
                    }
                }
            });
    
var  sm2  =   new  Ext.grid.RowSelectionModel({
        moveEditorOnEnter : 
true ,
        singleSelect : 
true ,
        listeners : {
            rowselect : 
function (sm, row, rec) {
                centerForm.getForm().loadRecord(rec);
            }
        }

    });
    



 

 

转载于:https://www.cnblogs.com/eycbest/archive/2010/09/07/1820287.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值