在flex

时间:2015-09-07 06:49:28

标签: actionscript-3 flex datagrid actionscript

我有一个没有的数据网格。列如:

<s:DataGrid id="cpDataGrid" dataProvider="{arrList}">
 <s:columns>
  <mx:ArrayList>
   <mx:source>
     <s:GridColumn headerText="Name" dataField="name" editable="false"/>
     <s:GridColumn headerText="Age" datafield="age" editable="false"/>
     <s:GridColumn headerText="Test" dataField="test" editable="false" />
     <s:GridColumn width="100" headerText="Result" dataField="result" >
  </mx:source>
  </mx:ArrayList>
 </s:columns>   
</s:DataGrid>

在上面的datagrid结果列中是可编辑的。当用户在该列中输入值时,我已经创建了函数,如下所示:

protected function onCreationCompleteHandler(event:FlexEvent):void
{
  cpDataGrid.addEventListener(GridItemEditorEvent.GRID_ITEM_EDITOR_SESSION_SAVE, onSave);               
}

private function onSave(event:GridItemEditorEvent):void
{
    var name:String = event.currentTarget.selectedItem.name;
}

现在,我将在编辑结束时获得名称和其他字段值。但我需要结果文本。表示用户在该字段中输入的文本。

如果假设用户在结果列中输入 50 ,那么我该如何获得该值?
任何帮助都将非常感谢。

1 个答案:

答案 0 :(得分:1)

对于spark.DataGrid,您需要根据spark.DataGrid创建自定义类并覆盖方法endItemEditorSession。您可以在其中访问DataGrid的属性itemEditorInstance

如果您使用mx.DataGrid,则可以将DataGridEvent.ITEM_EDIT_END事件与itemEditorInstance的{​​{1}}属性结合使用。

DataGrid