如何将组合框添加到DataGrid?

时间:2010-04-01 02:10:34

标签: flex datagrid flex3 combobox

我想将一个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 个答案:

答案 0 :(得分:1)

1)您可以向组合框添加内容,并将“selectedItem”值设置为适当的索引。

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

2)你可以给你的组合框一个ID,然后在脚本中选择ID.selectedIndex的项目

ID.selectedIndex = 2;

答案 1 :(得分:1)

您可能希望根据值对象中的变量设置初始值,而不是幻数。要做到这一点,你必须做这样的事情:

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;
}