datagrid
編集可能なオプションをtrueに設定しています。グリッド ビューでデータを変更すると、同じ変更が dataprovider に適用されるはずですflex
。私の考えでは、ArrayCollection
プロパティまたはitemUpdate
メソッドを使用する必要があります。
質問する
515 次
1 に答える
0
私のコードを見てください。
データ プロバイダーに 1 つのフィールドがあります。データ グリッドでは、編集の効果を確認できるように、このフィールドを 2 回追加しました。2 番目の列の値を編集して 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 に答える