[flexcoders] Problems creating/updating DB record with selection from DropDownList

2012-02-05 Thread hermeszfineart
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=#FF borderColor=#c3c3c3   width=157 color=#00

/s:DropDownList

/s:FormItem




Re: [flexcoders] Problems creating/updating DB record with selection from DropDownList

2012-02-05 Thread Scott Fanetti
It looks like you are setting the status on the change in the drop down list 
but not casting it. Is that your issue? The change handler does not seem 
attached - what is triggering it?  When you debug it - what are the contents of 
the drop down list data provider?  

Sent from my iPhone

On Feb 5, 2012, at 8:31 AM, hermeszfineart hermeszfine...@comcast.net wrote:

 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=#FF borderColor=#c3c3c3 width=157 color=#00
 
 /s:DropDownList
 
 /s:FormItem