2013-06-13 175 views

回答

0

英雄是一個例子,我測試了它。

,你可以看到這個文檔http://livedocs.adobe.com/flex/3/html/help.html?content=celleditor_8.html

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600" creationComplete="application1_creationCompleteHandler(event)"> 

<mx:Script> 
    <![CDATA[ 
     import mx.controls.TextInput; 
     import mx.events.DataGridEvent; 
     import mx.events.FlexEvent; 


     private var list:Array = [];//source dataProvider 

     protected function application1_creationCompleteHandler(event:FlexEvent):void 
     { 
      list.push({name:"aaaa"}, {name:"bbbb"}); 

      myDataGrid.dataProvider = list; 
     } 

     protected function myDataGrid_itemEditEndHandler(event:DataGridEvent):void 
     { 
      // TODO Auto-generated method stub 
      var targetDataGrid:DataGrid = event.target as DataGrid; 
      var newData:String = TextInput(targetDataGrid.itemEditorInstance).text; 
      var label:String = event.dataField; 

      //here according to target data type in list,you may force changing type of newData, like int(newData) 
      var indexOfList:int = targetDataGrid.editedItemPosition.rowIndex; 
      list[indexOfList][label] = newData; 

     } 

    ]]> 
</mx:Script> 

<mx:DataGrid id="myDataGrid" editable="true" itemEditEnd="myDataGrid_itemEditEndHandler(event)"> 
    <mx:columns> 
     <mx:DataGridColumn dataField="name" headerText="Name" editable="true" /> 
    </mx:columns> 
</mx:DataGrid>