2011-09-22 98 views
1

我想制作一个数据网格,它会根据某些条件动态地向它添加列。 现在,我可以添加列,但是我希望新添加的列有使用itemRenderer的按钮。在Flex中动态添加列到datagrid

虽然我无法做到这一点。获得第1行

这个错误描述资源路径位置1067型:为mx.controls的 值隐式强制:按钮无关 类型mx.core:IFactory的。 Demo.mxml/Demo/src line 14 Flex问题

任何人都可以帮忙吗?

这里有一个代码片段:

private function addDataGridColumn(dataField:String):void { 
      var dgc:DataGridColumn = new DataGridColumn(); 
      dgc.itemRenderer = button1; // Line 1 
      var cols:Array = dataGrid.columns; 
      cols.push(dgc); 
      dataGrid.columns = cols; 
     } 
+0

可以显示button1的声明和初始化吗? –

回答

4

itemRendereritemEditor性能IFactory类型。当您在MXML中设置这些属性时,MXML编译器会自动将属性值转换为ClassFactory类型,该类型实现IFactory接口。

当您设置在ActionScript这些属性,必须明确的属性值转换为ClassFactory

你可能会找这个,添加按钮,新添加的列的所有行。

private function addDataGridColumn(dataField:String):void { 
       var dgc:DataGridColumn = new DataGridColumn(); 
       dgc.itemRenderer = new ClassFactory(Button); 
       var cols:Array = dataGrid.columns; 
       cols.push(dgc); 
       dataGrid.columns = cols; 
      } 
+0

我打算发表相同的答案,所以是的,那就是如何去做! – Exort