【问题标题】:Flex 3 Using an ArrayCollection to Populate Both a Datagrid and a ComboBoxFlex 3 使用 ArrayCollection 填充 Datagrid 和 ComboBox
【发布时间】:2011-03-28 12:27:33
【问题描述】:

我使用这个 arrayCollection 来填充 Flex 3 数据网格。我还想使用这个 arrayCollection 来填充带有 Name 节点的组合框。

在arrayCollection 中,我列出了两次名称。我在 Datagrid 中有两行。

如果我将组合框的标签字段设置为名称,则名称将在组合框菜单中列出两次。有没有办法使用这个 arrayCollection 并且每个名称在组合框中只列出一次?

我总是可以为 Name 创建另一个循环和数组集合,但我想知道是否有更好的方法。

    var i:uint; 
    for (i=0; i<myArray.length; i++){
        myDGArray = [
         {Name: myArray[i].Name, Subject: 'Math:', Pass: myArray[i].math_pass, Fail: myArray[i].math_fail},
         {Name: myArray[i].Name, Subject: 'Reading:', Pass: myArray[i].reading_pass, Fail: myArray[i].reading_fail}
                             ]
                }

myAC=new ArrayCollection(myDGArray);

谢谢。

-拉克西米迪

【问题讨论】:

    标签: apache-flex flex3 datagrid combobox arraycollection


    【解决方案1】:

    我有点困惑。根据您的代码示例,该名称将在 ComboBox 中列出两次,因为在您的 dataProvider 中使用了两次相同的名称。

    您可能需要考虑将您的 dataProvider 转换为两个单独的 ListCollectionView 对象,对每个对象提供不同的过滤并将它们分别用作单独的 dataProviders。

    在伪代码中,我会这样做:

    public var comboBoxCollection : ListCollectionView = new ListCollectionView(myAC );
    public var dataGridCollection : ListCollectionView = new ListCollectionView(myAC );
    

    comboBoxCollection 上的应用过滤以过滤掉具有重复名称的条目。 More info on collection filtering in the docs.

    【讨论】:

    • 嗨,www.Flextras.com,非常感谢您的回复。 CollectonView 是我正在寻找的。我没听说过。感谢您的建议和链接。
    • ListCollectionView 是 ArrayCollection 和 XMLListCollection 的父级,如果我没记错的话。
    猜你喜欢
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 2012-11-10
    • 2014-06-20
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多