2013-06-15 3 views
0

편집 가능한 옵션이 true로 설정된 datagrid이 있습니다. 격자보기에서 데이터를 변경하면 동일한 변경 사항이 dataprovider에 적용되어야합니다. 나는 flex을 처음 사용하므로이 문제를 해결할 수 있습니다. 제 생각에는 ArrayCollection 속성이나 itemUpdate 메서드를 사용해야합니다.dataprovider 데이터를 업데이트하는 방법은 무엇입니까?

답변

0

내 코드를 살펴보십시오.

데이터 공급자에 필드가 하나 있습니다. 데이터 격자에서이 필드를 두 번 추가하여 편집 효과를 볼 수 있습니다. 두 번째 열의 값을 편집하고 Enter 키를 누르면 첫 번째 열의 결과를 볼 수 있습니다.

따라서 데이터 제공 업체는 항상 최신입니다.

여기는 working example입니다.

다른 것을 의미하는지 알려주세요.

<?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> 
+0

귀하의 도움에 감사드립니다. 그러나 데이터 그리드를 새로 고칠 때마다 우리는 오래된 값을 얻지 만 DataGrid에서 편집 한 후의 새로운 값을 어떻게 볼 수 있습니까? 나는 우리가 모든 데이터베이스에 그 dataprovider 값을 저장해야한다고 생각하거나 그것에 어떤 방법이있다. – user2083041

+0

오른쪽! 그것은 귀하의 서버 기술 및 데이터베이스 제공 업체에 따라 다릅니다. 너는 무엇을 사용하니? – Anton

+0

답장을 보내 주셔서 감사합니다. – user2083041

관련 문제