Adobe Flex 阵列集合

发布于 2024-11-30 17:30:22 字数 235 浏览 1 评论 0原文

我想对两个不同的 UI 组件使用单个集合对象。 1. 数据网格,第二个是图表组件。我不想更改 arraycollection 对象内部的任何内容,但我想同时将它与两个不同的组件一起使用,并进行细微的更改。我知道我们可以以某种方式使用过滤器函数,但不确定如何将过滤器应用于 arraycollection 对象,以便一个组件(datagrid)可以使用原始 arraycollection 对象,而第二个组件(图表)使用修改后的组件。

谢谢,

I want to use single collection object to two different UI components. 1. Datagrid and 2nd is chart component. I dont want to change anything inside the arraycollection object but I want to use it at the same time with two different component with minor changes. I know we can use filter function some how but not sure how to apply filter to arraycollection object so that one component (datagrid) can use the original arraycollection object and second component (chart) used the modified one.

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情深已缘浅 2024-12-07 17:30:22

如果您使用相同的 ArrayCollection 作为两个不同组件的 dataProvider,则应用于该 ArrayCollection 的任何过滤器或排序都将显示在这两个组件中。

你想做的事是做不到的。

但是,您可以基于同一源创建多个 ArrayCollection,并对它们应用不同的过滤器。从概念上讲是这样的:

public var arrayCollection1 : ArrayCollection = new ArrayCollection();
public var arrayCollection2 : ArrayCollection = new ArrayCollection();

protected function onIGotTheArray(value:Array):void{
 arrayCollection1.source = value;
 arrayCollection2.source = value;
 dataGrid.dataProvider = arrayCollection1;
 chart.dataProvider = arrayCollection2;
}

现在您可以将过滤器应用于第一个 arrayCollection,而不影响第二个 arrayCollection,反之亦然。

根据我的经验,这是首选方法。

If you use the same ArrayCollection as the dataProvider for two different components, then any filter or sort applied to that ArrayCollection will show up in both components.

What you want to do cannot be done.

However, you can create multiple ArrayCollections based on the same source and apply filters to them differently. Conceptually something like this:

public var arrayCollection1 : ArrayCollection = new ArrayCollection();
public var arrayCollection2 : ArrayCollection = new ArrayCollection();

protected function onIGotTheArray(value:Array):void{
 arrayCollection1.source = value;
 arrayCollection2.source = value;
 dataGrid.dataProvider = arrayCollection1;
 chart.dataProvider = arrayCollection2;
}

Now you can apply a filter to the first arrayCollection without affecting the second arrayCollection, or vice versa.

This is the preferred approach in my experience.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文