The Combobox by itself does not really support what you're trying to do.
As Tracy said there is sample code you can draw on to extend the
ComboBox to accept a 'selectedValue' parameter or something of the sort,
which in turn will fire internal logic to determine which item in the
dataProvider matches and to set the selectedIndex accordingly.
The other part of this is using binding. To have your instantiated
combobox to update its selectedIndex when a value changes you need to
reference a bindable value. If another code alters that value, it will
then re-fire the internal logic in your custom ComboBox.
{Bindable]
private var dp:Array =
[{data:'foo',label:'foo'},{data:'foo1',label:'foo1'},{data:'foo2',label:
'foo2'}];
[Bindable]
private var myVal:String = "foo";
<local:CustomComboBox dataProvider="{dp}" selectedValue="{myVal}"/>
Jeff
-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Dan Pride
Sent: Wednesday, October 08, 2008 1:23 PM
To: [email protected]
Subject: RE: [flexcoders] ComboBox in Component won't open to Saved
Value
This seems absurdly difficult for so simple a function.
I am trying to save a value from a popup and get it back when the list
is double clicked and the form is represented with a different record
selected. Not exactly rocket science.
I have tried every single event and nada.
Is there an "on Load" ???? Why not? It seems so obvious. Creation
complete only works the first time the form component is presented.
The functions are
private function closeRolePop(event:Event):void {
ComboBox(event.target).selectedItem.label};
private function openRolePop(event:Event):void {
var i:uint;
for(i=0; i < arrRoles.length; i++){
if(arrRoles.getItemAt(i).label == currentPerson.Role){
rolePop.selectedIndex = i;
}}}
Help Please this is really getting to me cause it should be so simple
--- On Wed, 10/8/08, Dan Pride <[EMAIL PROTECTED]> wrote:
> From: Dan Pride <[EMAIL PROTECTED]>
> Subject: RE: [flexcoders] ComboBox in Component won't open to Saved
> Value
> To: [email protected]
> Date: Wednesday, October 8, 2008, 12:38 PM
> Creation complete works the first time but the component is
> displayed when you click on a list, and subsequent
> selections are not displayed. I am having trouble figuring
> out which on is the correct event.?
> Sorry but I am relatively new at this kind of programming.
> Thanks
> Dan
>
>
> --- On Wed, 10/8/08, Tracy Spratt
> <[EMAIL PROTECTED]> wrote:
>
> > From: Tracy Spratt <[EMAIL PROTECTED]>
> > Subject: RE: [flexcoders] ComboBox in Component
> won't open to Saved Value
> > To: [email protected]
> > Date: Wednesday, October 8, 2008, 11:34 AM
> > Why are you doing that in the "open" event?
> Try
> > "creationComplete"
> > instead. Or set it directly without the function. Or
> bind
> > selectedIndex to a bindable variable.
> >
> > Tracy
> >
> >
> >
> > ________________________________
> >
> > From: [email protected] [mailto:[EMAIL PROTECTED]
> > On Behalf Of Dan Pride
> > Sent: Wednesday, October 08, 2008 10:57 AM
> > To: [email protected]
> > Subject: RE: [flexcoders] ComboBox in Component
> won't
> > open to Saved
> > Value
> >
> >
> >
> > Thanks for the response. I understand what needs to be
> done
> > as you
> > described but I still have one problem.
> > I tried this before.
> >
> > private function openGenderPop(event:Event):void {
> > genderPop.selectedIndex = 1; }
> >
> > The ComboBox opened to the zero value not the 1.
> > When I clicked on the box it opened to have the 1
> value
> > preselectect but
> > did not present upon opening.
> >
> > I am referencing it like this and must be missing some
> kind
> > of kick
> > event?
> >
> > <mx:ComboBox id="genderPop"
> > close="closeGenderPop(event)"
> > open="openGenderPop(event)"
> > dataProvider="{arrGender}"
> x="583.5"
> > y="89"
> > width="116" />
> >
> > Thanks again.
> > This board is GREAT !
> > Dan Pride
> >
> > --- On Wed, 10/8/08, Tracy Spratt
> <[EMAIL PROTECTED]
> > <mailto:tspratt%40lariatinc.com> > wrote:
> >
> > > From: Tracy Spratt <[EMAIL PROTECTED]
> > <mailto:tspratt%40lariatinc.com> >
> > > Subject: RE: [flexcoders] ComboBox in Component
> > won't open to Saved
> > Value
> > > To: [email protected]
> > <mailto:flexcoders%40yahoogroups.com>
> > > Date: Wednesday, October 8, 2008, 11:05 AM ComboBox.selectedItem
> > > will only work if you
> assign a
> > > *reference to an
> > > item in the ComboBox dataProvider*. This is
> rarely
> > > possible and is not
> > > in your case.
> > >
> > >
> > >
> > > What you must do is loop over the items in the
> > > CobmoBox.dataProvider and compare the appropriate property's value
> > > to
> the
> > value
> > > you want to match.
> > > When a match is found, use the loop indes to set
> the
> > > ComboBox's
> > > selectedIndex. This is simple enough to do in a
> > one-off
> > > situation.
> > >
> > >
> > >
> > > If you need this often, then you might want to
> use an
> > > extended ComboBox.
> > > Making a generic one is a bit tricky, because the
> > Combo Box
> > > dataProvider
> > > items can have any properties at all. I have an
> > example on
> > > www.cflex.net <http://www.cflex.net/
> > <http://www.cflex.net/> > (it
> > allows you
> > > to set the data
> > > field you want to match) and Ben forta has done
> one
> > and
> > > there are
> > > others.
> > >
> > >
> > >
> > > Tracy
> > >
> > >
> > >
> > > ________________________________
> > >
> > > From: [email protected]
> > <mailto:flexcoders%40yahoogroups.com>
> >
> > > [mailto:[email protected]
> > <mailto:flexcoders%40yahoogroups.com> ] On
> > > Behalf Of Dan Pride
> > > Sent: Wednesday, October 08, 2008 10:01 AM
> > > To: [email protected]
> > <mailto:flexcoders%40yahoogroups.com>
> > > Subject: [flexcoders] ComboBox in Component
> won't
> > open
> > > to Saved Value
> > >
> > >
> > >
> > > Hi
> > > I have a ComboBox used as a Popup on a form
> component.
> > > It saves fine using the following function
> > >
> > > private function closeGenderPop(event:Event):void
> {
> > > ComboBox(event.target).selectedItem.label};
> > >
> > >
> > > I want to have it display the stored value the
> next
> > time it
> > > is opened.
> > > I tried this but no luck.
> > >
> > > private function openGenderPop(event:Event):void
> {
> > > genderPop.selectedIndex = 1;
> > > ComboBox(event.target).selectedItem.label; }
> > >
> > > Really appreciate the help
> > >
> > > Dan Pride
------------------------------------
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Alternative FAQ location:
https://share.acrobat.com/adc/document.do?docid=942dbdc8-e469-446f-b4cf-
1e62079f6847
Search Archives:
http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! Groups
Links