动态设置组件的itemRenderer属性

来源:互联网 发布:淘宝男装58元 编辑:程序博客网 时间:2024/05/16 09:44

对于有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;

原创粉丝点击