PDA

Просмотр полной версии : как назначить dataProvider для Combobox в DataGrid?


spacecadet
13.01.2010, 10:59
Здравствуйте всем!

Уважаемые форумчане, помогите пожалуйста разобраться с датагридой! Заполняю ее из базы данных, хочу реализовать редактирование одного из полей с помощью комбобокса. Вопрос: как назначить комбобоксу источник данных? Пробую вот так:

<mx:DataGrid width="100%" height="100%" dataProvider="{dataArr}" editable="true" id="datagrid">
<mx:columns>
<mx:DataGridColumn headerText="Индекс" dataField="ObjClassID"/>
<mx:DataGridColumn headerText="Класс объектов" dataField="ObjClass"/>
<mx:DataGridColumn headerText="Геометрия объектов" dataField="ObjType">
<mx:itemEditor>
<mx:Component>
<mx:ComboBox editable="false" dataProvider="{comboArr}"/>
</mx:Component>
</mx:itemEditor>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>

...

<mx:Script>
<![CDATA[

...
public var dataArr:ArrayCollection = new ArrayCollection(); //здесь храним результат запроса для datagrid
public var comboArr:ArrayCollection = new ArrayCollection(); //здесь результат запроса для заполнения comboboxa

...

]]>
</mx:Script>

На это компилятор ругается в строке <mx:ComboBox editable="false" dataProvider="{comboArr}"/>, утверждая, что произошло обращение несуществующего свойства comboArr (ошибка 1120). Есть ли возможность динамически назначить датапровайдер для такого комбобокса, встроенного в датагриду? Подскажите, пожалуйста!

Добавлено через 1 час 55 минут
И как вообще обращаться к свойствам такого комбобокса в скрипте?

Кип
13.01.2010, 18:52
В справке настоятельно рекомендовали относиться к itemRenderer'у как к отдельному документу.
Обращаться к свойствам внешнего документа можно через outerDocument. Вот так: outerDocument.comboArr

spacecadet
14.01.2010, 11:09
Спасибо :)