[英]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.