itemrenderer的简单介绍
flex4.0 datagrid怎么动态添加itemrenderer
给你个例子
?xml?version="1.0"?
s:Application?xmlns:fx=""?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
flex4 itemrenderer怎么用
对于有itemRenderer属性的组件,如List、DataGrid的DataGridColumn,如果是在设计时设置itemRenderer是比较方便的,只要指定itemRenderer所使用的包和具体组件的名称就可以了,如下:
mx:DataGridColumn headerText="修改" dataField="edit"
itemRenderer="bss.flex.components.ButtonEditRenderer" width="50"/
其中bss.flex.components.ButtonEditRenderer是一个带有图片的LinkButton,这样就能显示自定义的渲染效果了
但是如果要是动态去生成这个表格列的时候又如何设置呢?是不能直接指定itemRenderer=ButtonEditRenderer,也不能给它指定字符串:
itemRenderer="bss.flex.components.ButtonEditRenderer";
这里要用到ClassFactory类,根据Class来设置,使用IFactory接口的newInstance()方法来,设置的方法如下:
var col:DataGridColumn = new DataGridColumn();
var renderer:IFactory = new ClassFactory(自定义的类名,如上面的ButtonEditRenderer);
col.itemRenderer = renderer;

请问各位仁兄,flex的itemrenderer怎么用的
itemrenderer这个是项目渲染器,也就是说凡是实现了Ilistitem或IdropDownListItem的控件都有自己的列表项(那俩接口名可能拼的不对),每个列表项具体要怎么显示就得靠itemrenderer了,因为凡是这种控件在数据层都有个data数据提供者,你只要断点就会发现它了,然后你可以自定义一个itemrenderer的子类,比如可以自定义一个label专门显示data里的某一列的值,当然也可以用image控件来显示图像,如果data的某一列里有图片数据的话,如果是对象,他会直接显示成[boject],data其实就是个大集合,里边包含列和行,你定义的显示控件用来显示每一列的值,这样,一一对应,就能按你自己的意思显示data里的数据了,另外tree控件的渲染器应该是treeItemrenderer好像。
flex4 itemRenderer外部如何调用itemRenderer内的方法或者变量?
必须用 数据源绑定。
itemRenderer(渲染器)内部可以写逻辑进行。每一条数据都会渲染的。
Flex中AdvancedDataGrid的两列itemRenderer间应该如何传值
combobox?id="cmb"?change="data.type=cmb.selectedItem.type"/
textinput?text="{data.type}"/