<?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>
Flex DataGrid中回车代替Tab键Z字型跳转的例子
最新推荐文章于 2019-08-08 09:01:38 发布