0

我有一个datagridwith editable 选项设置为 true。如果我在网格视图中更改数据,则相同的更改应该适用于 dataprovider。我是新手,flex任何人都可以帮助我解决这个问题。我的想法是我们需要使用ArrayCollection属性或itemUpdate方法。

4

1 回答 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 回答