Flex - Comment cliquer sur le bouton de lien rendu dans la colonne sans déclencher l'événement de clic pour AdvancedDatagrid?

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

Question

J'ai un AdvancedDatagrid avec deux colonnes qui ont des rendus d'articles. Ces rendus d'articles rendent les boutons de liaison dans leurs colonnes respectives. Je veux pouvoir cliquer sur ces boutons de lien sans déclencher l'événement ItemClick de AdvancedDatagrid. Des suggestions sur la façon dont je pourrais accomplir cela?

Était-ce utile?

La solution

Je n'ai jamais travaillé avec un AdvancedDatagrid mais je suppose que quelques principes détiennent. Le premier étant le comportement de la propagation des événements. L'événement est traité par le bouton avant qu'il ne soit traité par la grille. Cela signifie que nous pouvons attraper et empêcher l'événement d'atteindre le dataGrid. Vous trouverez ci-dessous un exemple de code démontrant comment un rendu de dataGrid peut avoir un bouton sans déclencher un autre comportement.

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>
....
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top