繁体   English   中英

在Flex中获取可编辑GridColumn的值

[英]Get value of editable GridColumn in flex

我有一个人,没有。 的列,例如:

<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结果列中是可编辑的。 当用户在该列中输入值时,我具有make函数,如下所示:

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 ,那么我如何获得该值?
任何帮助将不胜感激。

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

如果使用mx.DataGrid ,则可以结合使用DataGridEvent.ITEM_EDIT_END事件和DataGrid itemEditorInstance属性。

// register listener
cpDataGrid.addEventListener(DataGridEvent.ITEM_EDIT_END, onItemEditEnd);
...
// listener
private function onItemEditEnd(event:DataGridEvent):void {
    // at this point itemEditorInstance is still available, so you can get entered value from it
    // if itemEditorInstance is TextInput
    var enteredValue:String = TextInput(cpDataGrid.itemEditorInstance).text;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM