2009-08-16 5 views
0

Aufruf habe ich eine Anwendung eine datagrid mit einer benutzerdefinierten Spalte zeigen, in Flex 3. Wie kann ich die Methode loadDetails in diesem Code zugreifen ?:eine externe Methode von einer Komponente in Flex 3

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
    <mx:Script> 
     <![CDATA[ 
      public function loadDetails(id:String) : void { // Some code here 
        } 
     ]]> 
    </mx:Script> 
    <mx:DataGrid dataProvider="{[{id:'123456',name:'',address:''}]}"> 
    <mx:columns> 
    <mx:DataGridColumn headerText="Serial" dataField="id"/> 
     <mx:DataGridColumn headerText="Cliente" dataField="name"/> 
     <mx:DataGridColumn headerText="Dirección" dataField="address"/> 
     <mx:DataGridColumn width="50" dataField="id" headerText=""> 
      <mx:itemRenderer> 
       <mx:Component> 
       <mx:LinkButton label="" toolTip="Details" icon="@Embed('../resources/icons/details.png')" click="loadDetails(data.id);"> 
        </mx:LinkButton> 
       </mx:Component> 
     </mx:itemRenderer> 
     </mx:DataGridColumn> 
    </mx:columns> 
    </mx:DataGrid> 
</mx:Application> 

Wenn Ich habe versucht, diesen Code auszuführen. Flex löst einen Fehler aus. Es besagt, dass loadDetails nicht definiert ist. Ich nehme an, dass dieser Fehler auf den Umfang zurückzuführen ist. Aber ich habe keine Ahnung, wie ich es lösen könnte.

Antwort

1

Alles innerhalb des Komponenten-Tags ist im Grunde ein Deskriptor für eine Komponentenfactory. Daher befindet sich alles innerhalb dieses Tags in einem lokalen Bereich. Sie können jedoch die Eigenschaft outerDocument verwenden (wenn ich mich richtig erinnere), um auf das Dokument zuzugreifen, in dem sich der itemRenderer befindet.

+0

Ok .. Ich lerne flex und ich habe jetzt nicht darüber .. Ich habe es versucht und es funktioniert !! .. Danke .. =) – l2mt

0

Oder verwenden Sie ein Sprudlerereignis, um einem Listener auf dem Formular (oder anderswo) zu signalisieren, was Sie tun möchten.

Verwandte Themen