首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态设置dataGridColumn的ItemRenderer

动态设置dataGridColumn的ItemRenderer
EN

Stack Overflow用户
提问于 2009-11-27 22:48:08
回答 1查看 10.1K关注 0票数 4

我有这个DataGrid:

代码语言:javascript
复制
<mx:DataGrid id="myDataGrid">
    <mx:columns>
        <mx:DataGridColumn dataField="colA" headerText="Column A:" width="40"
            headerRenderer="path.customComponents.VerticalHeader"
            itemRenderer="path.customComponents.CustomDataGridItemRenderer" />
    </mx:Columns>
</mx:DataGrid>

只是我事先不知道会有多少列。因此,我尝试使用ActionScript中的函数构建列:

代码语言:javascript
复制
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)。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-27 22:53:36

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

代码语言:javascript
复制
column.itemRenderer 
            = new ClassFactory(path.customComponents.CustomDataGridItemRenderer);
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1809194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档