flex datagrid+combox外部渲染器之相互赋值


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;
                }
            }
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值