AdvancedDataGrid是按数据添加到它的DataProvider的顺序显示数据
2010-07-08 16:35
239 查看
今天想用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不起作用)。
一开始想到ArrayCollection可以排序,于是在作为dataProvider的ArrayCollection和每个结点的children属性上添加排序,代码如下:
var sort:Sort = new Sort(); sort.fields = [new SortField('orderNo')]; ... parentNode.children = new ArrayCollection(); parentNode.children.sort = sort;
但调试时发现AdvancedDataGrid只有第一级显示的顺序是正确的,2级结点仍是按添加的顺序显示(如果把该ArrayCollection作为Tree的dataProvider,则树的结点的显示顺序是正确的)。
上网搜索,在《Flex 3 advancedDataGrid的使用(一)》中看到这么一句,“AdvancedDataGrid是按数据添加到它的DataProvider的顺序显示数据,和DataGrid组件一样”,于是在客户端生成树结构的ArrayCollection时改为不是用parentNode.children.addItem,而是获取当前即将添加的结点的顺序,并用parentNode.children.addItemAt添加进去,最终达到预期效果(猜测ArrayCollection内部有保存排序前和排序后的数据,或至少有提供两个方法可同时获取排序前和排序后的数据,而dataProvider只获取排序前的数据,所以Sort不起作用)。
相关文章推荐
- 动态地往datagirdview中添加数据,当所添加的数据超过datagridview的显示范围后,滚动条就无法显示,程序出现假死状态,(scrollbars=both)
- 数据窗口列的添加和显示顺序调整及单元格赋值
- load data infile 导入数据 中文显示乱码 解决方法
- USART_SendData 和 Printf 输出的数据,电脑接收显示的是乱码
- 关于echarts在节点显示动态数据及添加提示文本所遇到的问题
- IOS Core Data之数据保存---顺序出现错误
- c# 在datagridview中添加comboboxcolumn 绑定数据库读取显示数据
- DWG数据添加到GoogleEarth上显示步…
- 递归遍历树结构顺序显示并且添加到list集合
- Testng之使用@DataProvider注解做数据驱动
- EasyUI学习之DataGird分页显示数据
- ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(一)
- thinkphp 添加数据 使用add($data); 只有主键增长 其他都为空
- yii CListView中使用CArrayDataProvider自定义数组作为数据
- 根据数据动态添加,显示新元素
- #448 – 在Grid中显示数据绑定元素的集合(Data Binding Elements in a Collection to a Grid)
- QMap,QHash插入后的显示顺序以及记录插入顺序的数据结构
- AngularJS,实现输入框失焦添加内容到最前,当数据重复删除原来并显示在数组最前
- 报表分组统计然后显示数据的时候顺序不正常,即使用order by 也是不可以!见图
- ASP.NET企业开发框架IsLine FrameWork系列之六--DataProvider 数据访问(下)