我在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工作正常。
根据要求,这是我的Datagrid;
<s:DataGrid id="dataGrid" dataProvider="{_listItems}">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="change" headerText="Change" itemRenderer="myitemrenderer" />
...
</s:DataGrid>
_listItems是一个带有模型类实例的ArrayList,其中包含一个名为Change的类型为Number的属性。
答案 0 :(得分:0)
这样做:
[Bindable]
private var simpleDataProvider:ArrayCollection = new ArrayCollection([{first: "this", second: "is", third:"test", fourth:"data"},
{first:"not", second:"full", third: "row"}]);
数据网格:
<s:DataGrid id="dg" dataProvider="{simpleDataProvider}">
<s:columns>
<s:ArrayCollection>
<s:GridColumn dataField="first"/>
<s:GridColumn itemRenderer="Group.TestRenderer3"/>
<s:GridColumn dataField="third"/>
<s:GridColumn dataField="fourth"/>
</s:ArrayCollection>
</s:columns>
</s:DataGrid>
项目渲染器:
<?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"
xmlns:mx="library://ns.adobe.com/flex/mx" clipAndEnableScrolling="true">
<fx:Script>
<![CDATA[
override public function set data(value:Object):void
{
lblData.text = value.second;
}
]]>
</fx:Script>
<s:Label id="lblData" top="9" left="7"/>
</s:GridItemRenderer>
最重要的是value.second
在您的情况下应该是value.change