views:

97

answers:

1

Hi,

I use this arrayCollection to populate a Flex 3 Datagrid. I'd also like to use this arrayCollection to populate a comboBox with the Name node.

In the arrayCollection, I've got the Name listed twice. I've got two rows in the Datagrid.

If I set the ComboBox's labelfield to Name, then the Name will be listed twice in the ComboBox menu. Is there a way to use this arrayCollection and have each Name listed only once in the comboBox?

I can always make another loop and array collection for the Name, but I was wondering if there were a better way.

    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);

Thank you.

-Laxmidi

+1  A: 

I'm a bit confused. Based on your code sample, the name will be listed twice in the ComboBox because the same name is used twice in your dataProvider.

You may want o consider converting your dataProvider to two separate ListCollectionView objects, provide different filtering on each object and use those each as se[separate dataProviders.

In psuedo code this is how I'd do it:

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

The apply filtering on the comboBoxCollection to filter out entries with duplicate names. More info on collection filtering in the docs.

www.Flextras.com
Hi, www.Flextras.com,Thanks so much for the reply. The CollectonView is what I'm looking for. I hadn't hear of it. Thanks for the advice and link.
Laxmidi
ListCollectionView is the parent, if memory serves me, of both ArrayCollection and XMLListCollection.
www.Flextras.com