В Flash Builder как создать <s: List> dataprovider = "определенную часть массива"? - PullRequest
0 голосов
/ 15 марта 2011

У меня есть список, и у меня есть ArrayCollection.

ArrayCollection - это что-то вроде:
<mx:ArrayCollection id="arrColl">
<mx:source>
<mx:Array>
<mx:Object label="Student A" score="85,36,43,67,54,47" />
<mx:Object label="Student B" score="85,36,43,67,54,47" />
<mx:Object label="Student C" score="85,36,43,67,54,47" />
</mx:Array>
</mx:source>
</mx:ArrayCollection> 1012 *
*

Мне нужен список, чтобы отображать только баллы ученика.

Что-то вроде:

<s:List dataprovider="arrColl[Student A]"/>
или:
<s:List dataprovider="arrColl.Student A."/>

Ответы [ 2 ]

1 голос
/ 15 марта 2011

Проблема в том, что элемент управления списком не поднимет эту переменную "34,65,36,87,12" и превратит ее в список IList.

Я понял это, сначала я должен сделать это: studentAArray = new ArrayCollection (arrColl.score.split (",")); Затем используйте studentAArray в качестве поставщика данных List.

0 голосов
/ 15 марта 2011

Ничего не делайте со списком, чтобы это произошло. Вы хотите применить фильтр к ArrayCollection. Список немедленно подберет фильтр и удалит недопустимые элементы из представления.

Установите dataProvider следующим образом:

<s:List dataprovider="arrColl"/>

Затем создайте функцию фильтра , примерно так:

public function StudentAFilter(item:Object):void{
  if(item['label'] = "Student A"){
   return true;
  }
  return false;
}

И где-нибудь в своем коде сделайте что-то вроде этого:

arrColl.filterFunction = StudentAFilter;
arrColl.refresh()

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...