2012-05-29 33 views
0

我有一個ItemRenderer和ItemEditor的數據網格。 點擊時,由於我的數據網格是可編輯的,我可以修改編輯單元格的值。但是,當我使用Tab鍵驗證這些更改時,例如,itemrender值與開始時的值相同,不會出現任何更改。Datagrid使用ItemEditor值更新ItemRenderer

你能向我解釋如何解決這個問題嗎?

<mx:DataGridColumn dataField="scRub2" headerText="{sNomCol2}" 
editable="true" width="{iNomCol2}"id="dgc1" wordWrap="true" 
                   itemRenderer="itemRenderer.MultilineHTMLRenderer" 
itemEditor="itemRenderer.irHtmlText" 
editorDataField="htmlModif" 

// itemEditor的

<?xml version="1.0" encoding="utf-8"?> 

<fx:Script> 
    <![CDATA[ 

     public var htmlModif:String; 
     protected function lblData_changeHandler(event:Event):void 
     { 
      htmlModif = lblData.htmlText; 
     } 
    ]]> 
</fx:Script> 


<mx:TextArea id="lblData" top="0" left="0" right="0" bottom="0"  
      htmlText="{dataGridListData.label}" preinitialize="initTA()" 
      change="lblData_changeHandler(event)"> 
    <fx:Script> 
     <![CDATA[ 

      import flash.events.Event; 

      import mx.controls.dataGridClasses.DataGridListData; 

      import mx.controls.dataGridClasses.DataGridListData; 
      import mx.controls.listClasses.BaseListData; 
      [Bindable("dataChange")] private var _listData : BaseListData; 

      override public function get listData():BaseListData 
      { 
       return _listData;    
      }     
      override public function set listData(value : BaseListData) : void 
      { 
       _listData = value; 
      } 

      private function onChange(event:Event):void 
      { 
       this.data[ (listData as DataGridListData).dataField ] = lblData.htmlText; 
      } 
      public function initTA():void {   
       addEventListener("dataChange", handleDataChanged); 
      } 

      public function handleDataChanged(event:Event):void {  
       // Cast listData to DataGridListData. 
       var myListData:DataGridListData = 
        DataGridListData(listData); 
       // Access information about the data passed 
       // to the cell renderer. 
       trace("row index: " + String(myListData.rowIndex) + 
        " column index: " + String(myListData.columnIndex)); 

      } 
     ]]> 
    </fx:Script> 
</mx:TextArea> 

感謝

回答

0

我沒有運行您的代碼,但他認爲變化的領域htmlModif得到功能將解決您的問題

public var htmlModif:String; 
     protected function lblData_changeHandler(event:Event):void 
     { 
      htmlModif = lblData.htmlText; 
     } 

public function get htmlModif():String 
    { 
     return lblData.htmlText; 
    } 

希望幫助

相關問題