AdvancedDataGrid是按数据添加到它的DataProvider的顺序显示数据

今天想用AdvancedDataGrid显示树形数据,但数据在服务端加载时是另一种顺序,而在客户端显示时想用“排序号”显示。

一开始想到ArrayCollection可以排序,于是在作为dataProvider的ArrayCollection和每个结点的children属性上添加排序,代码如下:

但调试时发现AdvancedDataGrid只有第一级显示的顺序是正确的,2级结点仍是按添加的顺序显示(如果把该ArrayCollection作为Tree的dataProvider,则树的结点的显示顺序是正确的)。

上网搜索,在《Flex 3 advancedDataGrid的使用(一)》中看到这么一句,“AdvancedDataGrid是按数据添加到它的DataProvider的顺序显示数据,和DataGrid组件一样”,于是在客户端生成树结构的ArrayCollection时改为不是用parentNode.children.addItem,而是获取当前即将添加的结点的顺序,并用parentNode.children.addItemAt添加进去,最终达到预期效果(猜测ArrayCollection内部有保存排序前和排序后的数据,或至少有提供两个方法可同时获取排序前和排序后的数据,而dataProvider只获取排序前的数据,所以Sort不起作用)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值