Flex:根据组件顺序双击datagrid上的事件传播?

时间:2010-03-21 01:54:00

标签: flex datagrid events double-click

我想在Flex3中的数据网格上进行双击事件。以下示例仅在Accordion(id =“mustBeSecond”)容器位于DataGrid之后才有效。为什么组件的顺序很重要,我该怎么做才能防止这种行为? (该示例不起作用。如果更改“mustBeSecond”和“gridReportConversions”的顺序,示例工作正常)

<mx:Script>
    <![CDATA[
            import mx.controls.Alert;
            import mx.collections.ArrayCollection;

            [Bindable] private var dp:ArrayCollection = new ArrayCollection([
                {qty:1,referer:'http://google.com'},
                {qty:25,referer:'http://cnn.com'},
                {qty:4,referer:'http:stackoverflow.com'}]);

            private function refererRowDoubleClicked(e:Event):void { 
                Alert.show("double click");
            }

    ]]>
</mx:Script>


<mx:HBox width="100%" height="100%"> 
  <mx:Accordion width="200" height="200" id="mustBeSecond">
    <mx:Canvas label="Navigation Box" width="100%" height="100%">
        <mx:VBox>
            <mx:LinkButton label="First Link" />
            <mx:LinkButton label="Second Link" />
        </mx:VBox>
    </mx:Canvas>
  </mx:Accordion>                   
  <mx:DataGrid id="gridReportConversions" height="100%" width="100%" dataProvider="{this.dp}"
    mouseEnabled="true" doubleClickEnabled="true" itemDoubleClick="refererRowDoubleClicked(event)">
      <mx:columns>
        <mx:DataGridColumn width="75" dataField="qty" headerText="Qty" />
        <mx:DataGridColumn dataField="referer" headerText="URL" />
      </mx:columns>
  </mx:DataGrid>  
</mx:HBox>

1 个答案:

答案 0 :(得分:1)

我在Flex中对您的代码进行了测试,但它们所处的顺序没有任何差别。双击事件无论如何都会被触发。这是一个新项目,没有其他代码,除了Flex应用程序为您设置的默认内容。

有时,当Flex项目开始表现得很奇怪时,单击Project - &gt;会有所帮助。清洁。

您是否在“问题”窗格中显示任何错误或通知?