itemrenderer的简单介绍

http://www.itjxue.com  2023-02-28 22:42  来源:未知  点击次数: 

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}"/

(责任编辑:IT教学网)

更多

推荐Flash教程文章