我想在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>
答案 0 :(得分:1)
我在Flex中对您的代码进行了测试,但它们所处的顺序没有任何差别。双击事件无论如何都会被触发。这是一个新项目,没有其他代码,除了Flex应用程序为您设置的默认内容。
有时,当Flex项目开始表现得很奇怪时,单击Project - &gt;会有所帮助。清洁。
您是否在“问题”窗格中显示任何错误或通知?