Flex: ¿Cómo hacer clic en el botón Rendered Link en la columna sin activar el evento de clic para el avanzado DataGrid?

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

Pregunta

Tengo un DataGrid Advanced con dos columnas que tienen renderizadores de artículos. Esos renderizadores de elementos están representando botones de enlace en sus respectivas columnas. Quiero poder hacer clic en esos botones de enlace sin activar el evento ElementClick del AdvancedDataGrid. ¿Alguna sugerencia sobre cómo podría lograr esto?

¿Fue útil?

Solución

Nunca he trabajado con un Datagrid Advanced, pero supongo que algunos principios tienen. El primero es el comportamiento de la propagación del evento. El evento es procesado por el botón antes de procesarlo por la cuadrícula. Esto significa que podemos atrapar y evitar que el evento llegue a DataGrid. A continuación se muestra una muestra de código que demuestra cómo un renderizador de datos puede tener un botón sin activar otro comportamiento.

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top