有时需要为datagrid加上固定的序号列 就像excel那样,搜索了网上的实现方式,大多是通过扩展datagrid本身来进行的,比较繁琐
下面是我自己的实现方式,基本思路就是用itemrender访问父文档的datagrid的dataProvider,使用ArrayCollection的getItemIndex方法实现行号
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
public function genrowno(ob:Object):String
{
return String((datalist.dataProvider as ArrayCollection).getItemIndex(ob));
}
]]>
</mx:Script>
<mx:DataGrid width="565"
id="datalist"
height="283">
<mx:columns>
<mx:DataGridColumn>
<mx:itemRenderer>
<mx:Component>
<mx:Label text="{this.parentDocument.genrowno(data)}">
</mx:Label>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="TM"
headerText="日期"/>
<mx:DataGridColumn dataField="LL"
headerText="流量"/>
</mx:columns>
<mx:dataProvider>
<mx:ArrayCollection>
<mx:Array>
<mx:Object TM="7.13-6"
LL="2.9"/>
<mx:Object TM="7.13-8"
LL="2.9"/>
<mx:Object TM="7.14-6"
LL="1.9"/>
<mx:Object TM="7.14-8"
LL="1.9"/>
<mx:Object TM="7.15-6"
LL="1.9"/>
<mx:Object TM="7.15-8"
LL="1.9"/>
<mx:Object TM="7.16-6"
LL="3.05"/>
<mx:Object TM="7.16-8"
LL="3.15"/>
<mx:Object TM="7.17-6"
LL="3.15"/>
<mx:Object TM="7.17-8"
LL="3.15"/>
<mx:Object TM="7.18-6"
LL="3.15"/>
<mx:Object TM="7.18-8"
LL="3.15"/>
<mx:Object TM="7.19-6"
LL="3.15"/>
<mx:Object TM="7.19-8"
LL="3.05"/>
<mx:Object TM="7.20-6"
LL="1.9"/>
<mx:Object TM="7.20-8"
LL="1.9"/>
</mx:Array>
</mx:ArrayCollection>
</mx:dataProvider>
</mx:DataGrid>
</mx:Application>