2011-01-07 13 views
0

私は間違っていると思うので、誰かが私にそれを説明することができますか分からない。私はリストdataproviderの助けを必要とする

私は戻って送信しているAMFPHPオブジェクトの配列を持って、それは次のようになります。

(Object)#0 
    content = (Array)#1 
    [0] (Object)#2 
     config = "1" 
     id = "3" 
     param = "3" 
     title = "categorypreview" 
    [1] (Object)#3 
     config = "0" 
     id = "1" 
     param = "-1" 
     title = "highestdisplay" 
    [2] (Object)#4 
     config = "0" 
     id = "8" 
     param = "-1" 
     title = "featured" 
    header = (Array)#9 
    [0] (Object)#10 
     config = "1" 
     id = "9" 
     param = "5" 
     title = "categorymenu" 
    [1] (Object)#11 
     config = "1" 
     id = "6" 
     param = "1" 
     title = "adzones" 

私が使用していますMXMLは次のとおりです。

<s:List id="headerList" y="52" left="10" width="200" height="150"> 
    <s:layout> 
     <s:HorizontalLayout/> 
    </s:layout> 
</s:List> 
<mx:DataGrid id="mydatagrid" x="10" y="214"> 
    <mx:columns> 
     <mx:DataGridColumn headerText="Column 1" dataField="title"/> 
     <mx:DataGridColumn headerText="Column 2" dataField="param"/> 
    </mx:columns> 
</mx:DataGrid> 

ActionScriptは次のとおりです。

protected function getLayoutResultHandler(event:ResultEvent):void 
     { 
      mydatagrid.dataProvider = event.result.header; 
      headerList.dataProvider = event.result.header; 
     } 

データグリッドはテストのためだけにあります。

型変換に失敗しました::mx.collections.IList

にdcc5629 @ []に変換することができない私が午前問題は、DataGridは、ヘッダ配列の値を移入しますが、リストは私のエラーを与えるです

私は間違っていますか?

答えて

2

私はそれを理解しました!

protected function getLayoutResultHandler(event:ResultEvent):void 
{ 
    var header:ArrayCollection = new ArrayCollection(event.result.header); 
    headerList.dataProvider = header; 
    mydatagrid.dataProvider = header; 
} 

今すぐすべての作品:ここ

は私がやっていたもので、ActionScriptで私はこのように私の機能を変更しました。

+0

amfphpバージョン1.9を使用すると、配列結果は "event.result"オブジェクトにあり、ArrayCollectionコンストラクタのArrayにキャストしなければなりませんでした。そうでなければ、これは素晴らしい仕事でした。 –

0

event.result.headerを何らかのコレクションとしてキャスティングしてみてください。私の最高の推測では、あなたのamfphp呼び出しから返されたデータはデータ型としてキャストされておらず、Listはそれを処理する方法を知らないということです。

protected function getLayoutResultHandler(event:ResultEvent):void 
{ 
    mydatagrid.dataProvider = event.result.header as ArrayCollection; 
    headerList.dataProvider = event.result.header as ArrayCollection; 
} 
関連する問題