【发布时间】:2014-10-01 08:20:20
【问题描述】:
我有一个 DataGrid,其中一列有一个 ComboBox 作为其中一列的项目编辑器。 ComboBox 的dataProvider 中的值类型与存储在正在编辑的单元格中的值类型不同。如何将项目编辑器返回的值映射到单元格中的值。一个完整的例子来说明我的问题:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="init()">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var items:ArrayCollection;
[Bindable]
public var foobar:ArrayCollection;
private function init():void
{
items = new ArrayCollection();
items.addItem({name : "Adam", abbrev: "ABCD"});
items.addItem({name : "Frank", abbrev : "EFGH"});
items.addItem({name:"Bob", abbrev:"ABCD"});
foobar = new ArrayCollection();
foobar.addItem({id:"ABCD", displayValue:"Adam Buys Cheap Drinks"});
foobar.addItem({id:"EFGH", displayValue:"Eban Flies Great Heat"});
}
]]>
</fx:Script>
<mx:DataGrid dataProvider="{items}" editable="true">
<mx:columns>
<mx:DataGridColumn headerText="Name" dataField="name" />
<mx:DataGridColumn headerText="Abbrev" dataField="abbrev"
editorDataField="selectedItem">
<mx:itemEditor>
<fx:Component>
<mx:ComboBox labelField="displayValue"
dataProvider="{outerDocument.foobar}" />
</fx:Component>
</mx:itemEditor>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</s:Application>
我希望看到的是,当用户从ComboBox 中选择一个项目时,返回值的id 属性被放置在网格中正在编辑的单元格中。
目前,id/displayValue 对象被传递,导致 [object object] 被显示。
【问题讨论】:
标签: actionscript-3 apache-flex datagrid combobox