Flex - Como clicar no botão renderizado Link na coluna sem acionar o evento de clique para o AdvancedDataGrid?

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

Pergunta

Eu tenho um AdvancedDataGrid com duas colunas que possuem renderizadores de itens. Esses renderizadores de itens estão renderizando botões de link em suas respectivas colunas. Quero poder clicar nesses botões de link sem acionar o evento ItemClick do AdvancedDataGrid. Alguma sugestão de como eu poderia conseguir isso?

Foi útil?

Solução

Eu nunca trabalhei com um AdvancedDataGrid, mas presumo que alguns princípios se mantenham. O primeiro é o comportamento da propagação do evento. O evento é processado pelo botão antes de ser processado pela grade. Isso significa que podemos pegar e impedir que o evento atinja o DataGrid. Abaixo está uma amostra de código que demonstra como um renderizador DataGrid pode ter um botão sem acionar outro comportamento.

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>
....
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top