gpt4 book ai didi

apache-flex - 动态设置dataGridColumn的ItemRenderer

转载 作者:行者123 更新时间:2023-12-04 03:23:18 26 4
gpt4 key购买 nike

我有这个数据网格:

<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 中的函数构建列:
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)。

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

最佳答案

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

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

关于apache-flex - 动态设置dataGridColumn的ItemRenderer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1809194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com