Как добавить поле со списком в DataGrid? - PullRequest
0 голосов
/ 01 апреля 2010

Я хочу добавить ComboBox в DataGrid. Пока что я нашел единственный способ сделать это так:

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

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

Ответы [ 2 ]

1 голос
/ 01 апреля 2010

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

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

где WorkHist - это Canvas, или любой другой компонент, в котором живет DG.

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;
}
1 голос
/ 01 апреля 2010

1) Вы можете добавить содержимое в выпадающий список и установить для значения selectedItem значение, соответствующее правильному индексу.

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

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

ID.selectedIndex = 2;
...