DataGrid中如何添加下拉列表呢?如下是实现的代码:
DataGrid中的列
<mx:DataGridColumn headerText="状态" dataField="status" editable="true" itemEditor="components.colorStatus" editorDataField="status" labelFunction="myStatusFunction" />
对应的本文件的方法,如果没有该方法对应的DataGrid中数值不会显示
//操作的回调函数 private function myStatusFunction(item:Object,coloum:DataGridColumn):String{ if(item.status == 1){ return "启用"; }else{ return "禁用"; } }
下拉列表中的值对应的下拉列表的集合,colorStatus.mxml
<s:DropDownList dataProvider="{statusArr}" id="cbx_zkg" width="100%" labelField="label"/> <fx:Script> <!--[CDATA[ import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.controls.dataGridClasses.DataGridColumn; public var statusArr:ArrayCollection = new ArrayCollection([{label:"启用", data:"1"},{label:"禁用", data:"0"}]); private var col:DataGridColumn=null; override public function set data(value:Object):void { if(value != null) { col = (value as DataGridColumn); super.data = value; } var statuss:int = data.status; for(var i:int=0;i<statusArr.length;i++){ if(statusArr[i].data==data.status.toString() ) { cbx_zkg.selectedIndex=i; break; } } } /* public function cbx_change():void{ Alert.show(cbx_zkg.selectedItem.toString()); } */ public function get status() : int { if(null!=cbx_zkg&&null!=cbx_zkg.selectedItem) return cbx_zkg.selectedItem.data; else return 0; } ]]--> </fx:Script>
效果如下:
点击时候:
未点击的时候: