Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.08.2012, 11:48
Rundll вне форума Посмотреть профиль Отправить личное сообщение для Rundll Найти все сообщения от Rundll
  № 1  
Ответить с цитированием
Rundll

Регистрация: Jan 2012
Сообщений: 23
По умолчанию Как правильно заменить Repeater на DataGroup?

Всем привет.

Задача проста: есть UI и его модель, в UI может быть отображено определенное количество контролов типа DropDownList, при этом модель является поставщиком списка элементов для каждого такого контрола. Пробовал использовать для решения этой задачи mx:Repeater, но производительность и глюкавость этого компонента оставляет желать лучшего. В частности наблюдал как при открытии UI его caption, даже не знаю как это назвать, прыгал что-ли. Делал как-то так:

Код AS3:
<mx:Tile direction="vertical"
            height="100%"
            width="100%">
 
            <mx:Repeater id="dropDownListContainer"
                               dataProvider="{model.dropDownListSelectedValues}">
 
                <s:DropDownList dataProvider="{model.dropDownListItems}"
                                selectedItem="{dropDownListContainer.currentItem}"
                                labelField="label"/>
 
            </mx:Repeater>
 
</mx:Tile>
где model.dropDownListSelectedValues - это ArrayList, размер которого по сути определяет количество контролов DropDownList и являющийся поставщиком выделенных по умолчанию элементов для каждого контрола.

model.dropDownListItems - это ArrayList со списком элементов для DropDownList.

Теперь я хочу все это дело переписать с использованием спаркового DataGroup, прочитал, что это хорошая альтернатива mx:Repeater.

Код получился следующим:

Код AS3:
<s:DataGroup id="dropDownListContainer"
                 dataProvider="{model.dropDownListSelectedValues}"
                 itemRenderer="spark.components.DropDownList">
 
        <s:layout>
 
            <s:TileLayout orientation="columns"
                          requestedColumnCount="2"
                          requestedRowCount="3" />
        </s:layout> 
 
</s:DataGroup>
Вопрос в том, как мне в этом случае для каждого DropDownList подсунуть список элементов из модели model.dropDownListItems? Подозреваю, что для этого нужно использовать кастомный рендерер, но как мне в него передать значения model.dropDownListItems? Может быть и вовсе существует альтернативное решение. В общем, заранее благодарю за ответы и советы.

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:28.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.