我有一个datagrid
with editable 选项设置为 true。如果我在网格视图中更改数据,则相同的更改应该适用于 dataprovider。我是新手,flex
任何人都可以帮助我解决这个问题。我的想法是我们需要使用ArrayCollection
属性或itemUpdate
方法。
问问题
515 次
1 回答
0
看看我的代码。
我在数据提供者中有一个字段。在数据网格中已经添加了两次这个字段,让你看到编辑的效果。如果您编辑第二列中的值并按 Enter,您可以在第一列中看到结果。
因此,您的数据提供者始终是最新的。
这是工作示例。
让我知道你是否还有别的意思。
<?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"
minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]private var myDP:ArrayCollection = new ArrayCollection([
{myfield:"Hello"},
{myfield:"World"}
]);
]]>
</fx:Script>
<s:DataGrid id="myDG" x="30" y="30" height="120" dataProvider="{myDP}" editable="true">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="myfield" headerText="My Field" width="120"/>
<s:GridColumn dataField="myfield" headerText="My Field Edit" editable="true" rendererIsEditable="true" width="120">
<s:itemRenderer>
<fx:Component>
<s:GridItemRenderer>
<fx:Script>
<![CDATA[
import spark.events.TextOperationEvent;
protected function textinput_changeHandler(event:TextOperationEvent):void
{
var value:String = (event.currentTarget as TextInput).text
data[column.dataField] = value;
}
]]>
</fx:Script>
<s:TextInput text="{data['myfield']}" change="textinput_changeHandler(event)"/>
</s:GridItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:GridColumn>
</s:ArrayList>
</s:columns >
</s:DataGrid>
</s:Application>
于 2013-06-16T09:40:41.940 回答