Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

setting default selected value of a ComboBox?

Posted on 2008-06-17
17
Medium Priority
?
2,953 Views
Last Modified: 2012-01-22
Is there a way to set the default selected Value of a combo box based on if a string matches the labelField Value?

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/01/16/determining-which-item-was-clicked-in-a-flex-linkbar-control/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">
    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            
            
 
                        var dataStr:String;
                        var animalStr:String;
            private function onClick1(eventtester:String):void {
                dataStr=eventtester;
                Alert.show('combo box should now change to ' + eventtester);
                animalsComboBox.selectedLabel == eventtester;
            }
            
            private function onClick2(eventtester2:String):void {
                Alert.show(eventtester2);
            }
            
 
        ]]>
    </mx:Script>
 
    <mx:Array id="animals">
        <mx:Object label="One" data="1" custom="cougar" />
        <mx:Object label="Two" data="2" custom="rhino" />
        <mx:Object label="Three" data="3" custom="elephant" />
        <mx:Object label="Four" data="4" custom="penguin" />
    </mx:Array>
    
 
    
<mx:Repeater dataProvider="{animals}" id="RP">
<mx:TextInput id="textBox" text="{RP.currentItem.custom}"/>     
 
 
 
<mx:Button id="myButton" label="{String(RP.currentItem.custom)}" click="onClick1(event.currentTarget.getRepeaterItem().custom)"/>
 
</mx:Repeater>
 
 
 
<mx:LinkButton id="myLinkbutton" label="Click Event 2" click="onClick2(this.dataStr)"/> 
	<mx:ComboBox id="animalsComboBox" dataProvider="{animals}" labelField="custom"></mx:ComboBox>
 
 
</mx:Application>

Open in new window

0
Comment
Question by:_CODER_
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
17 Comments
 
LVL 23

Expert Comment

by:Siva Prasanna Kumar
ID: 21807222
What you want the default value as??

you can do it in two ways via  selectedItem or selectedIndex of the combo box.

in you case if you try something like selectedItem="3" for the comboBox
0
 

Author Comment

by:_CODER_
ID: 21807261
I want the selected item in the combobox to be the onClick1 value.
0
 

Author Comment

by:_CODER_
ID: 21807386
so if you click 'elephant' button the selected item in the combo box will be 'elephant'

0
Looking for a new Web Host?

Lunarpages' assortment of hosting products and solutions ensure a perfect fit for anyone looking to get their vision or products to market. Our award winning customer support and 30-day money back guarantee show the pride we take in being the industry's premier MSP.

 
LVL 23

Expert Comment

by:Siva Prasanna Kumar
ID: 21807390
Just to get your code working I made few changes to the previous methods
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/01/16/determining-which-item-was-clicked-in-a-flex-linkbar-control/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">
    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            
            
 
                        var dataStr:String;
                        var animalStr:String;
            private function onClick1(eventtester:Object):void {
                dataStr=eventtester.custom;
                Alert.show('combo box should now change to ' + eventtester);
                animalsComboBox.selectedItem = eventtester;
            }
            
            private function onClick2(eventtester2:String):void {
                Alert.show(eventtester2);
            }
            
 
        ]]>
    </mx:Script>
 
    <mx:Array id="animals">
        <mx:Object label="One" data="1" custom="cougar" />
        <mx:Object label="Two" data="2" custom="rhino" />
        <mx:Object label="Three" data="3" custom="elephant" />
        <mx:Object label="Four" data="4" custom="penguin" />
    </mx:Array>
    
 
    
<mx:Repeater dataProvider="{animals}" id="RP">
<mx:TextInput id="textBox" text="{RP.currentItem.custom}"/>     
 
 
 
<mx:Button id="myButton" label="{String(RP.currentItem.custom)}" click="onClick1(event.currentTarget.getRepeaterItem())"/>
 
</mx:Repeater>
 
 
 
<mx:LinkButton id="myLinkbutton" label="Click Event 2" click="onClick2(this.dataStr)"/> 
        <mx:ComboBox id="animalsComboBox" dataProvider="{animals}" labelField="custom" ></mx:ComboBox>
 
 
</mx:Application>

Open in new window

0
 

Author Comment

by:_CODER_
ID: 21807657
I see the changes. Trying it out now on my actual application...
0
 

Author Comment

by:_CODER_
ID: 21807730
It doesn't seem to be working in my application. I think it's because the combobox has a separate datasource then the method is using. but I need to match them based on Text in the label of the combo box is that possible?
0
 

Author Comment

by:_CODER_
ID: 21808007
if my datasource for the comobBox is from a database table, will it still be setup as:
private function onClick1(eventtester:Object):void

or will it be different?

0
 
LVL 23

Expert Comment

by:Siva Prasanna Kumar
ID: 21808283
that should not matter provided the item (object) which is going to onClick1 is same as the one in the combobox, but as you say they are different then you may have to do a little more processing like iterating the datasource used for that combo box and then setting the selected index accordingly.

0
 

Author Comment

by:_CODER_
ID: 21808351
When you say "providing it's the same" do you mean that its the same text?

0
 
LVL 23

Expert Comment

by:Siva Prasanna Kumar
ID: 21808474
what ever your feel is same must be mapped for example lets say both have some kind of uniq ID which will be same even thou there text's are different then you need to search for that uniqId in the data source of the combo box and get its index and set the selected index of the combox to appropriate index.
0
 

Author Comment

by:_CODER_
ID: 21808582
ahh. ok. I need to match them based on text in the label. not index or uniq ID.
any ideas? Thank you for helping me!

0
 
LVL 23

Expert Comment

by:Siva Prasanna Kumar
ID: 21808641
what was the label field?

your code will be something like this, where dp is the data provider for the combobox.
 private function onClick1(eventtester:Object):void {
                dataStr=eventtester.custom;
                
             //for loop iterating over the dataPrvider of the combobox
             //for every object in dataprovider check the text
             // like if(dp[i].text==dataStr)
                   {
                      animalsComboBox.selectedIndex = i;
                   }
               
            }

Open in new window

0
 

Author Comment

by:_CODER_
ID: 21809053
the label field of the dataprovider is DriverName

0
 
LVL 23

Expert Comment

by:Siva Prasanna Kumar
ID: 21809129
Dude its not possbile to tell like this :)

you may have to get the text on the clicked button and then get the data provider of the combox and iterate through them and match the text of the button with DriverName and set the matched index as selectedIndex
0
 
LVL 1

Accepted Solution

by:
KaiHogan earned 2000 total points
ID: 23226936
OK, see if this is what you are looking for.   It is what I am doing to match up the combobox (from data source #1) with the DataGrid Element (Data Sourse #2).   So when ever the datagrid selected item is changed it calls a change function that looks at this to determine the correct selected item.
var i:int = -1;
for each ( var node : XML in Application.application.SV_base.lastResult.BaseList )
{
	i++;					
	if (node.Base == dg.selectedItem.Base)
	{
		userBaseEdit.selectedIndex = i;  
	}
}

Open in new window

0
 
LVL 29

Expert Comment

by:dgofman
ID: 37475267
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
0

Featured Post

Understanding Web Applications

Without even knowing it, most of us are using web applications on a daily basis. Gmail and Yahoo email, Twitter, Facebook, and eBay are used by most of us daily—and they are web applications. We often confuse these web applications tools for websites.  So, what is the difference?

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

First things first - Preparation We need all the part for this install and it's much nicer to have them all on hand when you need them so here's what's required. Download Eclipse 3.5 32 bit (I like the Classic flavour) from here. (http://www.e…
It’s time for spooky stories and consuming way too much sugar, including the many treats we’ve whipped for you in the world of tech. Check it out!
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…

618 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question