我有一个高级数据网格,并使用arraycollection填充一些数据。我正在过滤arraycollection,更改了arraycollection索引。
Arraycollection:- [0] - name: abc
[1] - name: hello
[2] - name: hello1
[3] - name:hai
将arraycollection过滤为'hell'后,数组集显示如下:
Arraycollection:-
[0] - name: hello1
[1] - name: hello
我可以在过滤后知道索引改变的原因吗?
* 没有用于过滤的服务器端代码。它只是弹性边过滤。
答案 0 :(得分:2)
ArrayCollection
不是关联数组或映射,它是由整数索引的普通数组的包装。
即,你不能拥有一个只包含索引1和2的元素的数组。
对数组中的每个项执行测试函数,并为所有为指定函数返回true的项构造一个新数组。 如果某个项返回false,则它不会包含在新数组中。
答案 1 :(得分:0)
ArrayCollection有一些非常好的和独特的属性
One property is that it can be bound.
此绑定属性允许您将集合设置为Flex对象(如TileList)的数据提供者。
因此,当过滤集合时,TileList将使用过滤后的数据自动重新填充,而无需其他代码。
另一个属性是来源。这是未经过滤/未更改的数据。
当过滤器应用于集合时,新数据将是源减去过滤器测试失败的元素 如您所见,您的过滤器仅传递了2个项目并返回了2个元素的新集合 您不能假设任何给定元素的索引值不会改变 也可以使用arrCol.refresh();在应用数据绑定过滤器之后。