当前位置:  开发笔记 > 编程语言 > 正文

动态设置dataGridColumn的ItemRenderer

如何解决《动态设置dataGridColumn的ItemRenderer》经验,为你挑选了1个好方法。

我有这个DataGrid:


    
        
    

只有我事先不知道会有多少列.所以我尝试使用ActionScript中的函数构建列:

private var _columns:Array;

[Bindable]
public function set columns(value:Array):void
{
    var c:Array = [];
    for each(var object:Object in value)
    {
        var column:DataGridColumn = new DataGridColumn();
        column.headerText=object.name;
        column.width=40;

        // Setting the Renderers like this doesn't work!
        column.headerRenderer = 
                path.customComponents.VerticalHeader;
        column.itemRenderer = 
                path.customComponents.CustomDataGridItemRenderer;

        c.push(c);
    }
    myDataGrid.columns = c;
}
public function get columns():Array
{
    return _columns;
}

但由于某种原因,渲染不能像这样设置.(column.itemRenderer = com.ItemRenderer).

动态设置这些渲染的正确方法是什么?



1> Amarghosh..:

itemRendererheaderRenderer期望一个mx.core.IFactory值作为它的价值.在mxml中,您传递的字符串值将自动转换为mx.core.ClassFactory.在ActionScript中,您必须自己完成.

column.itemRenderer 
            = new ClassFactory(path.customComponents.CustomDataGridItemRenderer);

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有