Flex - So klicken Sie auf die Schaltfläche "Rendered Link" in der Spalte, ohne das Klickenereignis für das AdvancedDatagrid auszulösen?

StackOverflow https://stackoverflow.com/questions/20353234

Frage

Ich habe ein AdvancedDatagrid mit zwei Spalten mit Gegenstandsrenderern. Diese Artikel -Renderer machen Linkschaltflächen in ihren jeweiligen Spalten. Ich möchte in der Lage sein, auf diese Link -Schaltflächen zu klicken, ohne das ElementClick -Ereignis des AdvancedDatagrid auszulösen. Irgendwelche Vorschläge, wie ich das erreichen könnte?

War es hilfreich?

Lösung

Ich habe noch nie mit einem AdvancedDatagrid gearbeitet, aber ich gehe davon aus, dass ein paar Prinzipien gilt. Das erste ist das Verhalten der Ereignisausbreitung. Das Ereignis wird von der Schaltfläche verarbeitet, bevor es vom Netz verarbeitet wird. Dies bedeutet, dass wir das Ereignis davon abhalten und verhindern können, dass wir jemals das Datagrid erreichen. Im Folgenden finden Sie ein Code -Beispiel, das zeigt, wie ein Datagrid -Renderer eine Taste haben kann, ohne andere Verhaltensweisen auszulösen.

CustomerRenderer...
<fx:Script>
    <![CDATA[
        protected function watchButtonClickHandler(event:MouseEvent):void
        {
                            //the line below stops the event from 
                            //propagating through the rest of the display
                            //list
            event.stopImmediatePropagation();
                            //handle button click logic here

        }
    ]]>
</fx:Script>
<s:Group width="100%" id="buttonGroup">
    <s:layout>
        <s:HorizontalLayout horizontalAlign="center" verticalAlign="middle"
                            paddingBottom="1" paddingLeft="1" 
                            paddingRight="1" paddingTop="1" />
    </s:layout>
    <s:Button id="watchButton" width="98" label="{buttonLabel}" 
                click="watchButtonClickHandler(event)"/>
</s:Group>
....
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top