【问题标题】:How do I add a combo box to a DataGrid?如何将组合框添加到 DataGrid?
【发布时间】:2011-02-03 04:54:37
【问题描述】:
我想将 ComboBox 添加到 DataGrid。到目前为止,我发现的唯一方法是这样的:
<mx:DataGridColumn headerText="Header" dataField="src" >
<mx:itemRenderer>
<mx:Component>
<mx:ComboBox dataProvider="{data.srcChoices}" />
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
问题是 ComboBox 的初始值设置不正确。如果我对选择进行硬编码,则初始值设置正确。我无法对选择进行硬编码。知道我应该怎么做吗?
【问题讨论】:
标签:
apache-flex
datagrid
flex3
combobox
【解决方案1】:
1) 您可以向组合框添加内容并将“selectedItem”值设置为适当的索引。
<mx:ComboBox dataProvider="{data.srcChoices}" selectedindex="2" />
2) 你可以给你的组合框一个 ID,然后在脚本中选择带有 ID.selectedIndex 的项目
ID.selectedIndex = 2;
【解决方案2】:
您可能希望根据值对象中的变量设置初始值,而不是幻数。为此,您必须执行以下操作:
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;
}