Flex DataGrid中回车代替Tab键Z字型跳转的例子

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
 <![CDATA[
  import mx.controls.dataGridClasses.DataGridColumn;
  import mx.collections.ArrayCollection;
  [Bindable]
  private var list:ArrayCollection = new ArrayCollection(); 
  private var _rowIndex:int=-1,_columnIndex:int=-1;
  
  private function init():void{
   list.addItem(new Object());
   this.addEventListener(KeyboardEvent.KEY_DOWN,doKeyDown);
  }
  private function doKeyDown(event:KeyboardEvent):void{
   if(event.keyCode == 13){
    var cols:Array  =  _Grid.columns;
    _rowIndex = _Grid.selectedIndex;
    var columnIndexTemp:int = _Grid.editedItemPosition.columnIndex+1;
    //先判断当前列是否为最后一列,即当前列的所在列索引值加1是否小于列表的总列数
    //如果当前列为最后一列则从第一列开始寻找第一个可编辑列
    for (var j:int = (columnIndexTemp < cols.length ? columnIndexTemp:0);j< cols.length;j++){
     var col:DataGridColumn = cols[j];
     if(col.editable){
      _columnIndex = j;
      if(j ==0 ){
       _rowIndex++;
       list.addItem(new Object());
      }
     }
     if(_columnIndex != -1)
       break;
    }
    //将焦点定位到所求的列位置
    _Grid.editedItemPosition ={ rowIndex:_rowIndex,columnIndex:_columnIndex}; 
    _columnIndex = -1;
   }
  }
 ]]>
</mx:Script>
 <mx:DataGrid id="_Grid" y="0" width="100%" x="0" height="100%" dataProvider="{list}" textAlign="center" editable="true">
  <mx:columns>
   <mx:DataGridColumn headerText="Column 1" dataField="col1"/>
   <mx:DataGridColumn headerText="Column 2" dataField="col2"/>
   <mx:DataGridColumn headerText="Column 3" dataField="col3"/>
   <mx:DataGridColumn headerText="Column 1" dataField="col1"/>
   <mx:DataGridColumn headerText="Column 2" dataField="col2"/>
   <mx:DataGridColumn headerText="Column 3" dataField="col3"/>
   <mx:DataGridColumn headerText="Column 1" dataField="col1"/>
   <mx:DataGridColumn headerText="Column 2" dataField="col2"/>
   <mx:DataGridColumn headerText="Column 3" dataField="col3"/>
  </mx:columns>
 </mx:DataGrid>
</mx:Application>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值