0

datagrid編集可能なオプションをtrueに設定しています。グリッド ビューでデータを変更すると、同じ変更が dataprovider に適用されるはずですflex。私の考えでは、ArrayCollectionプロパティまたはitemUpdateメソッドを使用する必要があります。

4

1 に答える 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 に答える