0

私のサンプルアプリケーション(Java + Flex)のJavaクラスメソッドでは..

public class Sample
{

public ArrayList method1()
{
ArrayList al =new ArrayList();
al.add("one");
al.add("TWO");
}

Flex 側では、Blazed 接続を接続します... すべてが完全に完了し、私MXML file code

          public var userService:Sample = new Sample();
            protected function init_Call(event:FlexEvent):void
            {
                var rpcSearchResult:AsyncToken = userService.method1();
                rpcSearchResult.addResponder(new mx.rpc.Responder(success, failure));
            }
            [Bindable]public var ac:ArrayCollection = new ArrayCollection();

            public function success(event:ResultEvent):void
            {
                ac=event.result as ArrayCollection;
                Alert.show("Result : "+ac.getItemAt(0,0));

            }
            public function failure(event:FaultEvent):void
            {

                Alert.show("This is Fault Event");
            }

... ... ...

<s:DataGrid id="dataGrid" left="12" right="12" top="49" bottom="54" horizontalCenter="0"
                requestedRowCount="4" verticalCenter="-3" dataProvider="{ac}">
    <s:columns>
        <s:ArrayList>
        <s:GridColumn dataField="one" headerText="FirstValue"></s:GridColumn>
        <s:GridColumn dataField="two" headerText="SecondValue"></s:GridColumn>

        </s:ArrayList>
    </s:columns>

</s:DataGrid>

しかし、DataGrid では値を取得できませんが、ResultEvent 関数 Alert は「1」、「2」の値を正しく表示します。

4

1 に答える 1

0

Datagridに割り当てる変数に問題があると思われます。「ac」を[BINDABLE]に設定するか、関数の成功を次のように置き換えてみてください。

public function success(event:ResultEvent):void
        {
            datagrid.dataProvider = event.result;
        }

お役に立てば幸いです。

于 2012-11-02T13:33:56.903 に答える