在集合上应用过滤器时出现数据引用问题 - Flex

时间:2013-06-07 08:52:17

标签: flex collections filter

我面临一个有关数据引用的问题。我有一个对象有一个键值对数据,即

var _dataObj:Object;

_dataObj[‘value’] = xml;

我从对象中检索数据,并在<PEM>标记内的<COMP>上应用过滤器。我从我的xml中获取了xmlList(xml的所有子节点)并添加到xmlListCollection中。

var _listColl:XMLListCollection = new XMLListCollection(xml.children);

我在集合中应用了一个过滤器,

IsActive = ‘Y’

过滤后我的集合只包含两个记录,这是正确的。我的期望是它也应该反映在我的_dataObject中。但它并没有反映出来。我不知道为什么它会得到尊重而不会将过滤后的数据显示到_dataObject

XML结构:

<comp recordId="1150">
  <pem recordId="1150">
    <ID>3125465</ID>
    <IsActive>Y</IsActive>
  </pem>
  <pem recordId="1151">
    <ID>3125466</ID>
    <IsActive>N</IsActive>
  </pem>
  <pem recordId="1152">
    <ID>3125467</ID>
    <IsActive>Y</IsActive>
  </pem>
</comp>

1 个答案:

答案 0 :(得分:0)

ArrayCollectionXMLListCollection都延伸ListCollectionView

顾名思义,ListCollectionView是一组数据的“视图”,这实际上意味着它可以以不同的方式呈现数据,例如通过对它进行排序,过滤等等,但它保持底层数据不变,这就是原始xml永远不会改变的原因。

ListCollectionView具有toArray功能,但会将过滤后的数据作为新的Array实例返回。