Apache flex 在运行时从spark创建mx dataGrid itemRenderer
如何通过在运行时复制sparkColumn.itemRenderer来设置mxColumn.itemRenderer 我有一个使用mx:DataGrid、mx:AdvancedDataGrid和s:DataGrid的应用程序 我们正在使用mx:PrintDataGrid和mx:PrintAdvancedDataGrid实现一个“打印”功能 我们将可打印数据网格的列设置为要打印的数据网格的列,如下所示:Apache flex 在运行时从spark创建mx dataGrid itemRenderer,apache-flex,flex-spark,Apache Flex,Flex Spark,如何通过在运行时复制sparkColumn.itemRenderer来设置mxColumn.itemRenderer 我有一个使用mx:DataGrid、mx:AdvancedDataGrid和s:DataGrid的应用程序 我们正在使用mx:PrintDataGrid和mx:PrintAdvancedDataGrid实现一个“打印”功能 我们将可打印数据网格的列设置为要打印的数据网格的列,如下所示:printDataGrid.columns=targetDataGrid.columns//或
printDataGrid.columns=targetDataGrid.columns//或
printAdvancedDataGrid.columns=targetDataGrid.columns 这样做,打印将保留ItemRenders的格式 当要打印的dataGrid为spark时,将迭代列,并生成新的spark列
for(变量i:uint;i
{
sparkColumn=sparkColumns.getItemAt(i)作为GridColumn;
mxColumn=新的DataGridColumn();
mxColumn.headerText=sparkColumn.headerText;
mxColumn.dataField=sparkColumn.dataField;
//mxColumn.itemRenderer=sparkColumn.itemRenderer;
mxColumns.push(mxColumn);
}
dataField和headerText属性很容易从mx转换为spark列,但ItemRenderer更为复杂
如何将mxColumn.itemRenderer设置为sparkColumn.itemRenderer
有人知道如何在spark itemRenderer中挖掘组件/函数/属性吗?如何将其“类型强制转换”到mx itemRenderer
有人知道如何挖掘组件/功能/属性吗
在星火中?如何将其“类型转换”到mx
项目渲染器
即使这是可能的反思,我认为这将是一个非常艰巨的任务
如果我有这样的要求,我会考虑两种选择。
首先是通过扩展UIComponent
并实现接口为每列创建ItemRenders,以便Spark Grid
和Mx Grid
可以使用它们。然后,您将能够取消标记线
第二个是扩展spark列并添加字段“type
”,该字段将保存,例如:“Label”、“Date”、“CustomType”、“usdType”等
然后创建描述符,该描述符将保存列的类型、mx渲染器类和spark渲染器类
比如说,
var columnsDescripor:Object = {};
columnsDescripor["label"] = {mx: mx.controls.Label, s: spark.components.Label};
columnsDescripor["usd"] = {mx: MXusdRenderer, s: SusdRenderer};
那么
var columnsDescripor:Object = {};
columnsDescripor["label"] = {mx: mx.controls.Label, s: spark.components.Label};
columnsDescripor["usd"] = {mx: MXusdRenderer, s: SusdRenderer};
sparkColumn = ExtendedGridColumn(sparkColumns.getItemAt(i));
mxColumn.itemRenderer = new (columnsDescripor[sparkColumn.type].mx);