超高分求解Flex中DataGrid显示行号问题
废话不多说了,非常郁闷,这个问题困扰好久了,一直没解决,论坛上也发过几次帖子求救,虽然结贴了但一直没解决问题,要求如下:
1.我的DataGrid数据源是远程动态XML,已经实现了解析和数据绑定,需要在每一行数据前标上行号(如同咱们的Excel每行最前面的行号一样,不过Excel连表头都有行号,这儿表头不应该有行号),数据源中不含行号信息(也不应该含有)
2.行号保持固话,不随排序变化而变化
3.发生任何事件行号不变,比如列位置被鼠标拖动后,滚动条拉动等等事件
满足以上三个要求的,贴上代码,小弟倾囊分数相赠,100不够继续给!
此为旷世难题,不要小瞧,请在本地做好各项测试后再来回帖。
此贴长期有效,我打算打持久战!!!
[解决办法]
这有什么难的,很简单嘛
<mx:DataGrid id="userGrid" width="100%" height="100%" >
<mx:columns>
<mx:DataGridColumn headerText="行号" labelFunction="orderNoLbl" />
<mx:DataGridColumn headerText="单位名称" dataField="companyName" />
<mx:DataGridColumn headerText="法人代码" dataField="CompanyCode" />
...
</mx:columns>
</mx:DataGrid>
private function orderNoLbl(item:Object,column:DataGridColumn):String{
return (this.userGrid.dataProvider.getItemIndex(item)+1).toString();
}
[解决办法]
- XML code
<mx:DataGridColumn headerText="名次"> <mx:itemRenderer> <mx:Component> <mx:Text text="{(mx.controls.DataGrid)(listData.owner).itemRendererToIndex(this)+1}" fontSize="14" fontWeight="bold" color="0xB3833C"/> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn>