Мне нужна помощь со списком поставщиков данных - PullRequest
0 голосов
/ 07 января 2011

Я не уверен, что я делаю неправильно, поэтому, возможно, кто-то может мне это объяснить.

У меня есть массив объектов, которые 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;
        }

База данных только для теста. Проблема, с которой я сталкиваюсь, состоит в том, что сетка данных заполняется значениями массива заголовков, но список дает мне ошибку:

Приведение типов не удалось: невозможно преобразовать [] @ dcc5629 в mx.collections.IList

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 08 января 2011

Я понял это !!

Вот что я должен был сделать, в ActionScript я изменил свою функцию так:

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

Теперь все работает.

0 голосов
/ 07 января 2011

Попробуйте разыграть 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;
}
...