1.datagrid
<components:DoubleClickAdvancedDataGrid
width="80%" height="80%"
paddingLeft="25"
editable="false"
id="someDoc">
<components:columns>
<mx:AdvancedDataGridColumn id="dgPdName" headerText="文档名称" dataField="title"/>
<mx:AdvancedDataGridColumn id="dgPdUpdateTime" headerText="最后更新时间" dataField="revisionDate" />
<mx:AdvancedDataGridColumn id="dgPdSubmiter" headerText="提交者" dataField="author" />
<mx:AdvancedDataGridColumn id="dgPdLevel" headerText="质量评分" editable="false" dataField="level"/>
<mx:AdvancedDataGridColumn id="dgPdStatus" headerText="状态" dataField="status" />
<mx:AdvancedDataGridColumn id="dgPdIsDeliverable" headerText="交付物" dataField="isDeliverable" />
<mx:AdvancedDataGridColumn id="dgPdIsTransfer" headerText="是否移交" dataField="isTransfer" />
</components:columns>
</components:DoubleClickAdvancedDataGrid>
2. combox 数据源
[Bindable]
public var array:ArrayCollection =new ArrayCollection([
{data:'a',label:'a'},{data:'b',label:'b'},{data:'c',label:'c'},{data:'d',label:'d'},{data:'e',label:'e'},{data:'f',label:'f'},{data:'g',label:'g'}
]);
3.为datagird增加渲染器
var comboboxFactory:ClassFactory = new ClassFactory(LevelComboxRanderAs);
comboboxFactory.properties = { dataProvider: array , editable: false };
this.manageProjectDocumentsModule.dgPdLevel.itemRenderer = comboboxFactory;
4 自定义渲染器
public class LevelComboxRanderAs extends ComboBox
{
public function LevelComboxRanderAs()
{
super();
init();
}
public function init():void{
this.addEventListener(Event.CHANGE,changeHandle);
}
private function changeHandle(event:Event):void{
var mo:ManageProjectDocumentsModule=this.parentDocument as ManageProjectDocumentsModule;//要添加渲染器的父界面
var projectDocumentVo:ProjectDocumentVo=mo.someDoc.selectedItem as ProjectDocumentVo;//父界面中选中的一行
projectDocumentVo.level=this.selectedLabel;//将combox选中的值赋给选中行的那一列(渲染器所在列)
mo.changeOneDeliverablesRemo.editProductDeliverables(projectDocumentVo);//修改数据库的值
}
override public function get data():Object{
return super.data;
}
override public function set data(value:Object):void{
super.data=value;//datagrid从数据库查来的值(datagrid一行的值)
var arr:ArrayCollection = this.dataProvider as ArrayCollection;//combox的数据源
// Alert.show(""+value.level);
for(var i:int = 0;i<arr.length;i++){
var ob:Object = arr.getItemAt(i);
if(ob.label == value.level)//一行中的那一列值(渲染器所在列)
{
this.selectedIndex = i;//如果相同则combox选择与datagrid从数据库查来的值对应的条目(a,b,c,d,e,f,g)
break;
}
}
}
}