在datagrid中通过itemrenderer加入combobox时,如果拖拽滚动块,会出现表格的下拉列表重绘的问题,表现的现象就是下拉列表的内容上窜下跳。解决的办法是重载 set data方法。
示例代码如下:
<mx:DataGridColumn dataField="unit" headerText="单位" width="55" editable="false">
<mx:itemRenderer>
<mx:Component>
<mx:ComboBox labelField="unitName" dataProvider="{outerDocument.unitResult}"
change="outerDocument.onChange(event,'unit');
this.data.arrivalIndex=ComboBox(event.currentTarget).selectedIndex">
<mx:Script>
<![CDATA[
override public function set data(value:Object):void
{
super.data=value;
for each (var item:Object in dataProvider)
{
if (item.unitName == super.data.unitName)
{
selectedItem=item;
return;
}
}
}
]]>
</mx:Script>
</mx:ComboBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>