I have been trying to migrate certain form fields from <s:TextInput/> to 
<s:DropDownList/> where the DB columns have foreign keys to different tables 
(i.e. Status, Categories, Dimensions) so the user does not need to type the 
values. When I attempt to update the DB record it populates the field with 
"[object Status]". This implementation is primarily for the back office 
management of the application but some of this type of functionallity will be 
used to drive the front end as well in the future.

I know I must be missing something very simple so any help is appreciated.

Here is the applicable code:

<fx:Script>

<![CDATA[

import mx.binding.utils.BindingUtils;

import mx.collections.IList;

importmx.collections.errors.ItemPendingError;

import mx.controls.Alert;

import mx.events.FlexEvent;

import mx.rpc.AsyncResponder;

import mx.rpc.AsyncToken;

import mx.rpc.Fault;

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;


import spark.events.GridItemEditorEvent;

import spark.events.GridSelectionEvent;

import spark.events.IndexChangeEvent;


import valueObjects.Categories;

import valueObjects.Dimensions;

import valueObjects.Editions;

import valueObjects.Mediums;

import valueObjects.Status;

import valueObjects.Styles;

import valueObjects.Subjects;

[Bindable] private var _selectedStatus:String = "Available" ;


private function statusChanged(event:IndexChangeEvent):void{

if (event.newIndex == -1) return;

_selectedStatus = statusList.getItemAt(event.newIndex) as String;

}

protected function button_clickHandler(event:MouseEvent):void{

originals.inventoryno = inventorynoTextInput.text;

originals.title = titleTextInput.text;

originals.price = priceTextInput.text;

originals.status = _selectedStatus;   // Original version -- originals.status = 
statusTextInput.text:

originals.category = categoryTextInput.text;

// Output omitted

if (originals.originalid==0){

createOriginalResult.token = artServices.createOriginal(originals);

}

else{

updateOriginalResult.token = artServices.updateOriginal(originals);

}

}

]]>

</fx:Script>

<fx:Declarations>

    <s:AsyncListView id="statusList" 
list="{getAllArtStatusResult.lastResult}"/> <!-- DataProvider -->

</fx:Declarations>

<!-- output omitted for brevity -->

<s:FormItem label="Status" styleName="formLabel">

<s:TextInput id="statusTextInput" styleName="formContent" 
text="{originals.status}"/> <!-- this is one of the fields I am trying to 
replace -->

<s:DropDownList id="dropDownStatusList"

labelField="status" styleName="formContent" 
skinClass="CustomSkins.CustomDropDownListSkin" dataProvider="{statusList}"  
prompt="{originals.status}"

  change="{_selectedStatus = dropDownStatusList.selectedItem}" 
creationComplete="dropDownList_creationCompleteHandler(event)"

  symbolColor="#FFFFFF" borderColor="#c3c3c3"   width="157" color="#000000">

</s:DropDownList>

</s:FormItem>


Reply via email to