2010-04-01 6 views
0

Я хочу добавить ComboBox в DataGrid. До сих пор, единственный способ я нашел, чтобы сделать это так:Как добавить поле со списком в DataGrid?

<mx:DataGridColumn headerText="Header" dataField="src" > 
<mx:itemRenderer> 
<mx:Component> 
<mx:ComboBox dataProvider="{data.srcChoices}" /> 
</mx:Component>            
</mx:itemRenderer> 
</mx:DataGridColumn> 

Проблема начальное значение ComboBox не установлен правильно. Если я жестко кодирую выбор, тогда исходное значение устанавливается правильно. Я не могу жестко закодировать выбор. Любая идея, что я должен делать?

ответ

1

Вы, вероятно, хотите начальное значение, которое будет установлено на основе переменной из объект значения, а не волшебное число. Чтобы сделать это, вы должны сделать что-то вроде этого:.

selectedIndex="{(outerDocument as WorkHist).findItemIndexOccupation(data.Occupation)}" dataProvider="{outerDocument.occData}" 

где WorkHist является холста, или любой другой компонент ГД живет в

public function findItemIndexOccupation(data:String):int { 
    for (var i:int = 0; i < occData.length; i++) { 
     if (occData.getItemAt(i).POSITION == data) { 
      return i; 
     } 
    } 
    return -1; 
} 
+0

Спасибо, отлично работает. –

1

1) Вы можете добавить контент в поле со списком и установить значение «selectedItem» независимо от того, какой именно индекс.

<mx:ComboBox dataProvider="{data.srcChoices}" selectedindex="2" /> 

2) Вы можете дать ваш выпадающий идентификатор, а затем выберите пункт с ID.selectedIndex в скрипте

ID.selectedIndex = 2; 
Смежные вопросы