Frage

habe ich eine Anwendung eine datagrid mit einer benutzerdefinierten Spalte in Flex 3 zu zeigen. Wie kann ich die Methode loadDetails in diesem Code:

<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>

Als ich versuchte, diesen Code Flex wirft einen Fehler auszuführen. Er sagt, dass loadDetails nicht definiert ist. Ich nehme an, dass Fehler aufgrund von Umfang ist. Aber ich habe keine Ahnung, wie es zu lösen.

War es hilfreich?

Lösung

Alles, was innerhalb des Component-Tages wird im Grunde ein Descriptor für eine Komponente Fabrik sein. Dafür, irgendetwas in diesem Tag wird in einem lokalen Bereich sein. Sie können jedoch die Eigenschaft outerdocument verwenden (wenn ich mich richtig erinnere) auf das Dokument zuzugreifen, wo-in, den itemRenderer platziert wird.

<mx:LinkButton label="" toolTip="Details" icon="@Embed('../resources/icons/details.png')" click="outerDocument.loadDetails(data.id);"/>

Andere Tipps

oder ein Bubbling-Ereignis verwenden, um einen Zuhörer auf dem Formular zu signalisieren (oder anderswo), was Sie tun wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top