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 に答える