Hi,

Does anyone know how to bind the selectedItem of a combobox? Currently I am 
having problems trying to bind the selectedItem of a bindable combox in a 
master/detail app.  Here is my code for the combobox:

<mx:FormItem id="relationshipFormItem" label="Relationship to XX" 
fontWeight="bold">
        <view:BindableComboBox id="relationshipCB" width="123" 
                dataProvider="{model.relationships}"
                valueField="relationshipCode"
                labelField="relationshipDesc" enabled="true"
                selectedItem="model.selectedGuest.relationship}" />
</mx:FormItem>

I would like to have the selectedItem bind to the relationship of the 
selectedGuest when a guest is selected form the master list. When a guest is 
selected from the master list, the selectedGuest in the model is set to the 
guest selected and the state in the model is set to the detail state.  Both 
relationships and guest are bindable value objects. 

1. the "relationships" value object has two properties relationshipCode and 
relationshipDesc
2. the guest value object that has a relationship property (which is a string 
that corresponds to the relationshipCode of the relationships VO) plus other 
properties.  

What happened was that the selectedItem sometimes bind correctly to the 
relationship of the selected guest, but sometimes did not bind and the first 
value in the drop down box (null) was displayed.  I even had two exact 
comboboxes (with different ids) and sometimes one did bind and the other not.

Can someone shed some lights on this?  Any help will be deeply appreciated.

Susan

This is the code of the BindableCombox I used (provided by the code generator 
for coldfusion/flex) 

BindableCombobox (provided by code generator for coldfusion/flex):

<?xml version="1.0" encoding="utf-8"?>
<!--
////////////////////////////////////////////////////////////////////////////////
//
//  Copyright (C) 2003-2006 Adobe Macromedia Software LLC and its licensors.
//  All Rights Reserved. The following is Source Code and is subject to all
//  restrictions on such code as contained in the End User License Agreement
//  accompanying this product. If you have received this file from a source
//  other than Adobe, then your use, modification, or distribution of this file
//  requires the prior written permission of Adobe.
//
//  @author Dean Harmon
//  @author Mike Nimer
////////////////////////////////////////////////////////////////////////////////
-->
<mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml"; xmlns="*" 
creationComplete="componentInit()">
    <mx:Script>
        <![CDATA[
            import mx.utils.ObjectUtil;
            import mx.controls.Alert;
            
            [Bindable]
                public var valueField:String = "";
                
                [Bindable]
                public var labelFields:Array = [];

                        public function componentInit():void
                        {
                                this.labelFunction = renderLabelFunction;
                        }
                        
                        public function renderLabelFunction(item:Object):String 
                        {
                                var result:String = "";
                                if (labelFields.length == 0)
                                {
                                        if (labelField != null)
                                        {
                                                return item[labelField];
                                        } else {
                                                return item.toString();
                                        }
                                } else {
                                
                                        for(var i:int=0; i < 
labelFields.length; i++)
                                        {
                                                if (i > 0)
                                                {
                                                        result += " ";
                                                }
                                                 
                                                result += item[labelFields[i]];
                                        }
                                }
                                return result;
                        }

                        override public function set 
selectedItem(val:Object):void
                        {
                                //Alert.show(valueField +":" 
+ObjectUtil.toString(val));
                                if( this.valueField != null )
                                {
                                        for(var i:int=0; i < 
this.dataProvider.source.length; i++)
                            {
                                var item:Object = this.dataProvider.source[i];
                                
                                if( item[valueField] == val )
                                {
                                    // if it matches, make it selected.
                                    this.selectedIndex = i;
                                    break;                    
                                }                       
                            }
                           }    
                           else
                           {
                                        super.selectedItem(val);
                           }                    
                        }
                        
                        public function get selectedItemValue():Object
                        {
                                if( this.valueField != null && selectedItem != 
null)
                                {
                                        return selectedItem[valueField];
                                } else {
                                        return text;
                                }
                        }
           
        ]]>
    </mx:Script>
</mx:ComboBox>





-------------------------------------------------------------
To unsubscribe from this list, simply email the list with unsubscribe in the 
subject line

For more info, see http://www.affug.com
Archive @ http://www.mail-archive.com/discussion%40affug.com/
List hosted by http://www.fusionlink.com
-------------------------------------------------------------


Reply via email to