Now, you can provide a dataprovider for combobox (using an
arraycollection is better than hardcoding the data).
Use filter function to remove duplicates as described in the link:
http://blog.flexexamples.com/2007/08/05/removing-duplicate-items-from-an-array-using-the-arrayfilter-method/

Here is the code (visit the website link above to see a working
example)

<!-- Start Code -->

<?xml version="1.0" encoding="utf-8"?>
<!-- 
http://blog.flexexamples.com/2007/08/05/removing-duplicate-items-from-an-array-using-the-arrayfilter-method/
-->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white"
        creationComplete="init()">

    <mx:Script>
        <![CDATA[
            private var keys:Object = {};

            /**
             * Called by the Application container's creationComplete
             * event handler. This method creates a new Array object
             * which will be used as a data provider as well as a
             * filtered view of that array which does not contain
             * duplicated items.
             */
            private function init():void {
                /* Create a dummy data source with some semi-random
                    data. */
                var arr:Array = [];
                arr.push({data:1, label:"one"});
                arr.push({data:1, label:"one"});
                arr.push({data:1, label:"one"});
                arr.push({data:1, label:"one"});
                arr.push({data:2, label:"two"});
                arr.push({data:2, label:"two"});
                arr.push({data:2, label:"two"});
                arr.push({data:1, label:"one"});
                arr.push({data:3, label:"three"});
                arr.push({data:3, label:"three"});

                /* Filter the original array and call the
                    removeDuplicates() function on each item
                    in the array. */
                var filteredArr:Array = arr.filter(removedDuplicates);

                arrColl.source = arr;
                dedupedArrColl.source = filteredArr;
            }

            /**
             * This method is used to filter an array so that no
             * duplicate items are created. It works by first
             * checking to see if a keys object already contains
             * a key equal to the current value of the item.data
             * value. If the key already exists, the  current item
             * will not be readded to the data provider. If the key
             * does not already exist, add the key to the keys
             * object and add this item to the data provider.
             */
            private function removedDuplicates(item:Object, idx:uint,
arr:Array):Boolean {
                if (keys.hasOwnProperty(item.data)) {
                    /* If the keys Object already has this property,
                        return false and discard this item. */
                    return false;
                } else {
                    /* Else the keys Object does *NOT* already have
                        this key, so add this item to the new data
                        provider. */
                    keys[item.data] = item;
                    return true;
                }
            }
        ]]>
    </mx:Script>

    <mx:ArrayCollection id="arrColl" />
    <mx:ArrayCollection id="dedupedArrColl" />

    <mx:HBox>
        <mx:VBox>
            <mx:Label text="Original ({arrColl.length} items):" />
            <mx:List dataProvider="{arrColl}" />
        </mx:VBox>
        <mx:VBox>
            <mx:Label text="Filtered ({dedupedArrColl.length}
items):" />
            <mx:List dataProvider="{dedupedArrColl}" />
        </mx:VBox>
    </mx:HBox>

</mx:Application>

<!-- End Code -->

On Dec 30 2009, 10:46 am, Kiran Kumar Vasireddy <[email protected]>
wrote:
> Thanks Safi for your response . If I do this I get duplicate elements in
> Mycombox , I want to avoid them.
>
> Regards
> Kiran
>
>
>
> On Sun, Dec 27, 2009 at 10:50 PM, saanaa safi <[email protected]> wrote:
> > hi kiran,
> > i hope below example will help u. try this,i think this is what u r
> > expecting.
>
> > <?xml version="1.0" encoding="utf-8"?>
> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> > layout="absolute">
> >     <mx:ArrayCollection id="myColl">
>
> >           <mx:Object Company="GM" count="85"  Model ="Saab" ModelCount="20"
> > Year="2009" YearCount="10" />
> >           <mx:Object Company="GM" count="85"  Model ="Saab" ModelCount="20"
> > Year="2008" YearCount="5" />
> >           <mx:Object Company="GM" count="85"  Model ="Saab" ModelCount="20"
> > Year="2007" YearCount="5" />
> >            <mx:Object Company="GM" count="85"  Model ="Chevi"
> > ModelCount="20" Year="2009" YearCount="20" />
>
> >          <mx:Object Company="FORD" count="43"  Model ="Focus"
> > ModelCount="20" Year="2009" YearCount="5" />
> >           <mx:Object Company="FORD" count="43"  Model ="Focus"
> > ModelCount="20" Year="2008" YearCount="3" />
> >           <mx:Object Company="FORD" count="43"  Model ="Focs"
> > ModelCount="20"  Year="2007" YearCount="2" />
>
> >     </mx:ArrayCollection>
> >     <mx:ComboBox prompt="Company" dataProvider="{myColl}"
> > labelField="Company" x="44" y="21" width="100"/>
> >     <mx:ComboBox prompt="Model" dataProvider="{myColl}" labelField="Model"
> > x="153" y="21" width="100"/>
> >     <mx:ComboBox prompt="Year" dataProvider="{myColl}" labelField="Year"
> > x="275" y="21" width="100"/>
>
> > </mx:Application>
>
> > On Sat, Dec 26, 2009 at 4:00 PM, Kiran Kumar Vasireddy <
> > [email protected]> wrote:
>
> >> Dear All,
>
> >> I am getting the data in following format . Is there any way to load it
> >> into comboxbox avoiding duplicates? First combobox I want to just load
> >> Company Name removing duplicates.Second combox box based on the section I
> >> have to load  Models and In the Thrid combox box based on company and Model
> >> I have to load Years.Or if not Arraycollection , I can also get the data in
> >> XMLCollection . Could some body please give me best solution?
>
> >> <ArrayCollection>
>
> >>           <mx:Object Company="GM" count="85"  Model ='Saab" ModelCount=20
> >> Year="2009" YearCount="10" />
> >>           <mx:Object Company="GM" count="85"  Model ='Saab" ModelCount=20
> >> Year="2008" YearCount="5" />
> >>           <mx:Object Company="GM" count="85"  Model ='Saab" ModelCount=20
> >> Year="2007" YearCount="5" />
> >>            <mx:Object Company="GM" count="85"  Model ='Chevi"
> >> ModelCount=20 Year="2009" YearCount="20" />
>
> >>          <mx:Object Company="FORD" count="43"  Model ='Focus"
> >> ModelCount=10 Year="2009" YearCount="5" />
> >>           <mx:Object Company="FORD" count="43"  Model ='Focus"
> >> ModelCount=10 Year="2008" YearCount="3" />
> >>           <mx:Object Company="FORD" count="43"  Model ='Focs"
> >> ModelCount=10  Year="2007" YearCount="2" />
>
> >> </ArrayCollection>
>
> >>  --
> >> You received this message because you are subscribed to the Google Groups
> >> "Flex India Community" group.
> >> To post to this group, send email to [email protected].
> >> To unsubscribe from this group, send email to
> >> [email protected]<flex_india%2bunsubscr...@googlegrou
> >>  ps.com>
> >> .
> >> For more options, visit this group at
> >>http://groups.google.com/group/flex_india?hl=en.
>
> > --
> > Warm Regards
> > Saanaa....
>
> >  --
> > You received this message because you are subscribed to the Google Groups
> > "Flex India Community" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected]<flex_india%2bunsubscr...@googlegrou 
> > ps.com>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/flex_india?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "Flex 
India Community" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/flex_india?hl=en.

Reply via email to