【发布时间】:2012-01-10 11:06:14
【问题描述】:
我在 Datagrid (Spark) 中有一个 Gridcolumn。 Column 的 dataprovider 是一个通过 Binding 更新的 Number 值。
现在,如果没有项目渲染器,单元格会显示正确的值。 如果我设置了一个项目渲染器,我将无法访问此渲染器中的值。
我的渲染器看起来像这样,所以这里(现在)除了跟踪值之外什么也没做,但值始终是 NaN。
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" width="100%" height="100%" >
<fx:Script>
<![CDATA[
override public function set data(value:Object):void {
trace(Number(value));
}
]]>
</fx:Script>
</s:GridItemRenderer>
我真的不明白为什么会发生这种情况,所以任何见解都将不胜感激!同样,如果没有渲染器,该列会显示正确的值,因此 DefaultGridItemRenderer 显然可以正常工作。
根据要求,这是我的数据网格;
<s:DataGrid id="dataGrid" dataProvider="{_listItems}">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="change" headerText="Change" itemRenderer="myitemrenderer" />
...
</s:DataGrid>
_listItems 是一个具有模型类实例的 ArrayList,该模型类具有(除其他外)一个称为 Number 类型更改的属性。
【问题讨论】:
-
试试
<s:MXDataGridItemRenderer/> -
抛出以下错误:VerifyError:错误 #1014:找不到类 mx.controls.dataGridClasses::DataGridListData。
-
您可以添加您的 DataGrid 代码吗?更容易判断我们是否可以看到您如何为该列分配数据提供者和项目渲染器。
-
如果在
set data函数中设置断点并调试,value参数的值是多少?它是空的吗?应该是Object,那你怎么能指望Object被转换成Number -
是的,它是对象,确切地说是 myModel 类型。我所追求的是属性(更改),但它是一个数字。
标签: apache-flex datagrid itemrenderer