2010-04-01 96 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是画布,或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; 
} 
+0

谢谢你,完美的作品。 – 2010-04-01 14:06:35

1

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

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

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

ID.selectedIndex = 2;