有时需要为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>

 

 

posted on 2009-12-23 12:55  那边是北  阅读(1179)  评论(0编辑  收藏  举报