Flex - Как нажать на кнопку рендерированной ссылки в столбце без запуска события Click для AdvancedDataGrid?

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

Вопрос

У меня есть AdvancedDataGrid с двумя столбцами, в которых есть рендеристы элементов. Эти элементы рендереи представляют собой кнопки ссылки в своих столбцах. Я хочу иметь возможность нажать на эти кнопки ссылки без запуска события ItemClick AdvancedDataGrid. Есть предложения о том, как я мог бы сделать это?

Это было полезно?

Решение

Я никогда не работал с AdvancedDataGrid, но я предполагаю, что несколько принципов сохраняются. Первым является поведение распространения событий. Событие обрабатывается кнопкой, прежде чем оно будет обработано сеткой. Это означает, что мы можем поймать и остановить событие, которое когда -либо достигает данных. Ниже приведен образец кода, демонстрирующий, как рендерератель DataGrid может иметь кнопку без запуска другого поведения.

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>
....
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top