新的网格行与焦点

时间:2011-05-26 14:12:06

标签: flex flex3

我正在尝试创建一个可编辑的DataGrid,以便在用户在最后一行的最后一列按TAB时插入一个新行。

我的网格:

  <mx:DataGrid id="myGrid"
      dataProvider="{initDG}" editable="true"
      itemFocusOut="onItemFocusOut(event)">
      <mx:columns>
          <mx:DataGridColumn dataField="Company" editable="false"/>
          <mx:DataGridColumn dataField="Contact"/>
      </mx:columns>
  </mx:DataGrid>

我的onItemFocusOut事件:

      protected function onItemFocusOut(e: DataGridEvent):void{
        if((e.rowIndex == (initDG.length - 1)) && 
           (e.columnIndex == (myGrid.columnCount -1))){
          initDG.addItem({Company: 'New one', Contact: ''});
        }
      }

它工作正常,这意味着它插入一个新行。问题是flex专注于下一个组件,我需要它专注于最近创建的行。

有可能吗?

Thnaks

1 个答案:

答案 0 :(得分:3)

如果我是你,我不会这样做。 Tab是一个众所周知的键盘快捷键,如果在最后一个单元格,则转到下一个单元格或下一行。删除该功能将阻碍标准功能。

话虽如此,如果您想这样做,您可以尝试“拦截”键盘事件并对事件执行'stopImmediatePropogation()',或者您可以扩展DataGrid以添加您自己的功能标签