Populating ComboBox with CFC web service return type query
i learning flex , attempting first app (i have been cfer years).
anyway, attempting build air app in flex has login form submit information database.
things going ok, except stumped @ think should simple...populating combo box. have cfc (i using cfcs web service drive app) contains method returns query. want use results populate combo box display , value. created combo box , dragged method box have fb create code. populates list [object object]. piece of cake in cf not stumbling across correct syntax in flex. pointers appreciated.
here current code.
<?xml version="1.0" encoding="utf-8"?>
<s:windowedapplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:users="services.users.*"
currentstate="login"
xmlns:vinlookup="services.vinlookup.*"
xmlns:inventory="services.inventory.*"
creationcomplete="init()">
<fx:script>
<![cdata[
import mx.collections.arraycollection;
import mx.controls.alert;
import mx.events.flexevent;
import mx.rpc.events.faultevent;
import mx.rpc.events.resultevent;
import mx.utils.objectutil;
/*login code----------------------------------*/
private var loginrs:object;
//failed connect wsdl service
private function generalfailed_handler(e:faultevent):void
{
alert.show(e.fault.faultstring, "error connecting service");
}
//login handler
protected function submitbtn_clickhandler(event:mouseevent):void
{
loginuserresult.token = users.loginuser(username.text, password.text);
}
//result handler account authentication
private function loginuserresult_resulthandler(e:resultevent):void
{
//check result
//alert.show(objectutil.tostring(e.result),"login results")
loginrs = new object();
loginrs = e.result;
if(loginrs['loggedin'] == 'y')
{
currentstate = 'insertinventory';
}else{
alert.show("try again please.");
}
}
/*-------------------------------------------------*/
/*vin lookup code----------------------------------*/
private var vinrs:object;
//vin lookup handler
protected function vinsubmitbtn_clickhandler(event:mouseevent):void
{
getvininforesult.token = vinlookup.getvininfo(vin.text, "basic");
}
//result handler account authentication
private function vinlookupresult_resulthandler(e:resultevent):void
{
//check result
alert.show(objectutil.tostring(e.result),"lookup results")
vinrs = new object();
vinrs = e.result;
if(vinrs == null)
{
alert.show("the vin did not decode. try again please.");
}
else
{
bodystyle.text = vinrs['varbodystyle'];
//alert.show("yes!");
}
}
/*-------------------------------------------------*/
/*item type combo box code----------------------------------*/
protected function combobox_creationcompletehandler(event:flexevent):void
{
getitemtyperesult.token = inventory.getitemtype();
}
/*-------------------------------------------------*/
]]>
</fx:script>
<s:states>
<s:state name="login"/>
<s:state name="insertinventory"/>
</s:states>
<fx:declarations>
<s:callresponder id="loginuserresult" result="loginuserresult_resulthandler(event)"/>
<users:users id="users" fault="alert.show(event.fault.faultstring + '\n' + event.fault.faultdetail)" showbusycursor="true"/>
<s:callresponder id="getvininforesult" result="vinlookupresult_resulthandler(event)"/>
<vinlookup:vinlookup id="vinlookup" fault="alert.show(event.fault.faultstring + '\n' + event.fault.faultdetail)" showbusycursor="true"/>
<inventory:inventory id="inventory" fault="alert.show(event.fault.faultstring + '\n' + event.fault.faultdetail)" showbusycursor="true"/>
<s:callresponder id="getitemtyperesult"/>
<!-- place non-visual elements (e.g., services, value objects) here -->
</fx:declarations>
<s:panel width="250" height="150" title="login" horizontalcenter="0" verticalcenter="0" includein="login">
<mx:form width="100%" height="100%" horizontalcenter="0" verticalcenter="0">
<mx:formitem label="user name">
<s:textinput id="username"/>
</mx:formitem>
<mx:formitem label="password">
<s:textinput id="password" displayaspassword="true"/>
</mx:formitem>
<mx:formitem>
<s:button label="login" id="submitbtn" click="submitbtn_clickhandler(event)"/>
</mx:formitem>
</mx:form>
</s:panel>
<s:panel includein="insertinventory" width="400" height="400" title="insert inventory" horizontalcenter="0" verticalcenter="0">
<mx:form width="100%" height="100%" horizontalcenter="0" verticalcenter="0">
<mx:formitem label="vin">
<s:textinput id="vin"/>
</mx:formitem>
<mx:formitem id="vinsubmitbtn">
<s:button label="decode vin" id="vinsubmitbtn" click="vinsubmitbtn_clickhandler(event)"/>
</mx:formitem>
<mx:formitem label="body style">
<s:textinput id="bodystyle"/>
</mx:formitem>
<mx:formitem label="item type">
<s:combobox id="combobox" creationcomplete="combobox_creationcompletehandler(event)">
<s:asynclistview list="{getitemtyperesult.lastresult}"/>
</s:combobox>
</mx:formitem>
</mx:form>
</s:panel>
</s:windowedapplication>
i figured out of help. switched using dropdownlist , first example in help.
More discussions in Flex (Read Only)
adobe
Comments
Post a Comment