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>
效果如下:
点击时候:
未点击的时候: