0

FlashBuilder 4.6、coldfusion 9、および Sql Server 2005 を使用して、1 人の個人の年別データを折れ線グラフに入力しています。データ プロバイダーで固定文字列を使用する場合、これは問題なく機能しますが、使用可能なすべての個人のドロップダウン リストを使用して個人を選択したいと考えています。折れ線グラフに使用される個人名は、ドロップダウンの個人と同じ形式です。flashbuilder データ/サービスはフィールドを文字列として表示しますが、MS Sql Server テーブルはそれらを varchar(50) として表示します。

添付のコードは、個々の「greenleaf」を選択する getpool_ratings_yr1Result.token = pool_ratings_yr1Service.getpool_ratings_yr1('greenleaf') を示しています。これをドロップダウンの selectedItem に置き換えて、チャートを動的にしたいと考えています。('greenleaf') を ({dropdownList.selectedItem}) に置き換えてみましたが、機能しませんでしたが、機能させるにはイベントをトリガーする必要があるかもしれません。

私は FlashBuilder と Flex を初めて使用しますが、多くの資料を読みましたが、決定的なものは見つかりませんでした。

どんな助けでも大歓迎です。ありがとう、ウィル

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               xmlns:pool_ratings_yr1service="services.pool_ratings_yr1service.*"
               xmlns:pool_playerservice="services.pool_playerservice.*"
               minWidth="955" minHeight="600">
    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.events.FlexEvent;

            protected function linechart1_creationCompleteHandler(event:FlexEvent):void
            {
                getpool_ratings_yr1Result.token = pool_ratings_yr1Service.getpool_ratings_yr1('greenleaf');
            }


            protected function dropDownList_creationCompleteHandler(event:FlexEvent):void
            {
                getAllpool_playerResult.token = pool_playerService.getAllpool_player();
            }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <s:CallResponder id="getpool_ratings_yr1Result"/>
        <pool_ratings_yr1service:Pool_ratings_yr1Service id="pool_ratings_yr1Service"
                                                         fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"
                                                         showBusyCursor="true"/>
        <s:CallResponder id="getAllpool_ratings_yr1Result"/>
        <s:CallResponder id="getAllpool_playerResult"/>
        <pool_playerservice:Pool_playerService id="pool_playerService"
                                               fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"
                                               showBusyCursor="true"/>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <mx:LineChart id="linechart1" x="234" y="97"
                  creationComplete="linechart1_creationCompleteHandler(event)"
                  dataProvider="{getpool_ratings_yr1Result.lastResult}" showDataTips="true">
        <mx:series>
            <mx:LineSeries id="lineSeries" displayName="Series 1" yField="avg_rating"/>
        </mx:series>
        <mx:horizontalAxis>
            <mx:CategoryAxis id="categoryAxis" categoryField="yr"/>
        </mx:horizontalAxis>
    </mx:LineChart>
    <mx:Legend dataProvider="{linechart1}"/>
    <s:DropDownList id="dropDownList" x="73" y="133"
                    creationComplete="dropDownList_creationCompleteHandler(event)"
                    labelField="lname">
        <s:AsyncListView list="{getAllpool_playerResult.lastResult}"/>
    </s:DropDownList>
</s:Application>
4

1 に答える 1

0

関数を追加してみてください:

private function comboBoxChange():void
{
    var selectedName:String = dropDownList.selectedItem;
    getpool_ratings_yr1Result.token = pool_ratings_yr1Service.getpool_ratings_yr1(selectedName);

}

次に、dropDownListに変更eventListenerを追加します。

<s:DropDownList id="dropDownList" x="73" y="133"
                creationComplete="dropDownList_creationCompleteHandler(event)"
                labelField="lname"
                change="comboBoxChange()">
于 2012-05-09T08:26:03.513 に答える