2011-06-22 84 views
0

我有一個帶有textInput作爲itemrenderer的列表。最初,該列表將加載來自數據提供者的數據。然而,由於項目是在textInputs中呈現的,我有能力更改特定項目的值。從列表中的ItemRenderer中獲取已更改的值

但在嘗試訪問使用下面的功能更改的項目的價值時,我仍然可以在我的跟蹤舊值:

private function addItem(event:Event):void { 
    trace(myDataProvider.getItemAt(myList.selectedIndex).label); 
} 

有人可以告訴我,我需要新的價值做可用。我的itemrenderer如下所示:

<?xml version="1.0" encoding="utf-8"?> 
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       xmlns:components="components.*" 
       > 
<s:layout> 
    <s:HorizontalLayout/> 
</s:layout> 

<fx:Script> 
    <![CDATA[ 


     override public function set data(value:Object) : void { 
      super.data = value; 
     } 

     protected function myTextInput_enterHandler(event:FlexEvent):void 
     { 

      trace(myTextInput.text); 
          What Next?? 


     } 


    ]]> 
</fx:Script> 

<components:myComp1 text="{data.label}" id="myTextInput" enter="myTextInput_enterHandler(event)"/> 
</s:ItemRenderer> 

謝謝你的幫助..任何人。

回答

0

嘗試使用:

<?xml version="1.0" encoding="utf-8"?> 
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       xmlns:components="components.*" 
       > 
<s:layout> 
    <s:HorizontalLayout/> 
</s:layout> 

<fx:Script> 
    <![CDATA[ 


     override public function set data(value:Object) : void { 
      super.data = value; 
     } 

     protected function myTextInput_enterHandler(event:FlexEvent):void 
     { 
      trace(myTextInput.text); 
      data.label = myTextInput.text; 
     } 


    ]]> 
</fx:Script> 

<components:myComp1 text="{data.label}" id="myTextInput" enter="myTextInput_enterHandler(event)"/> 
</s:ItemRenderer> 
+0

我已經嘗試設置,下面一行, data.label = myTextInput.text 但它仍然無法正常工作。當在主應用程序中執行以下操作時:它仍舊給出舊值: trace(myDataProvider.getItemAt(1).label); //用於我正在測試並更改其值的索引) 或 trace(myDataProvider.getItemAt(myList.selectedIndex).label); 這裏有什麼缺失嗎? – FlexBoz

+0

將斷點放入'myTextInput_enterHandler'處理程序中,看看會發生什麼(哪些變量隨着什麼值發生了變化)。我想你已經錯過了一些明顯的東西。 – Constantiner

+0

確實錯過了惠顧..Thx – FlexBoz