1

我想在 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>

4

1 回答 1

1

我在 Flex 中测试了您的代码,它们的顺序没有任何区别。双击事件以任何一种方式触发。这是在一个新项目中,除了 Flex 应用程序为您设置的默认内容之外没有其他代码。

有时,当 Flex 项目开始表现得很奇怪时,单击 Project -> Clean 会有所帮助。

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

于 2010-03-21T02:23:58.050 回答