flex4.0 datagrid怎么动态添加itemrenderer

前端开发

AdvancedDataGrid根据ID去动态添加列。列动态绑定itemrenderer,里面实现类似输入框,。之前静态...

AdvancedDataGrid 根据ID去动态添加列。列动态绑定itemrenderer ,里面实现类似输入框,。之前静态

展开

其他回答 (1)

#1

给你个例子1234567891011121314151617181920212223242526272829303132333435363738394041424344<?xml version="1.0"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"               xmlns:mx="library://ns.adobe.com/flex/mx">    <fx:Script><![CDATA[        import mx.collections.ArrayCollection;        import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;          private var fields:Array = ['id', 'name'];        private var ac:ArrayCollection = new ArrayCollection([            {id: 1, name: 'aaaa'},            {id: 2, name: 'bbbb'},            {id: 3, name: 'cccc'}        ]);         private function button1_clickHandler(e:MouseEvent):void {            var columns:Array = [];            for each (var field:String in fields) {                var column:AdvancedDataGridColumn = new AdvancedDataGridColumn();                column.dataField = column.headerText = field;                 if(field == 'name') {                    column.itemRenderer = new ClassFactory(TextInputRenderer);                }                 columns.push(column);            }             adg.dataProvider = ac;            adg.columns = columns;        }        ]]></fx:Script>    <fx:Declarations>        <fx:Component id="myComponent" className="TextInputRenderer">            <mx:TextInput text="@{data.name}"/>        </fx:Component>    </fx:Declarations>    <mx:AdvancedDataGrid id="adg" width="400" height="300">     </mx:AdvancedDataGrid>    <s:controlBarContent>        <s:Button label="create columns" click="button1_clickHandler(event)"/>    </s:controlBarContent></s:Application>

← 返回列表