Hi Stephen,
you pretty much have it. Steps 1 and 2 can be done in any order. You can do
your Flex layout first if you want and then write your CF code or vice versa,
that part doesn't really matter.
I'm not sure what your trying to bind your data to but say you had a datagrid
that you wanted to populate from data returned from a CFC.
There are several ways to do this but the easiest way I found is to use a
<mx:RemoteObject> tag with your method name and a result to return your data to:
<mx:RemoteObject method="myMethod" result="myMethodResult(event)"
fault="Alert.show(event.fault.message)" />
Now you can either pass arguments into that RemoteObject or just call it as is.
In your ActionScript code you need to have your results method to populate your
grid. First you need to declare a Bindable variable so that your grid has
something to bind to.
[Bindable] public var myResult:Object;
public function myMethodResult(event:ResultEvent):void {
myResult = event.result;
}
One warning I would give is- if you need to do any type of Array functions this
method will not allow that. You would need to either use the
<mx:ArrayCollection> to convert it to an ArrayCollection or return your query
results as an array and set your variable to an ArrayCollection datatype.
Now to populate your datagrid you would just do:
<mx:DataGrid dataProvider="{myResult}" >
<mx:columns>
<mx:Array>
<mx:DataGridColumn headerText="Column1"
dataField="column1"/>
<mx:DataGridColumn headerText="Column 2"
dataField="column2"/>
<mx:DataGridColumn headerText="Column 3"
dataField="column2/>
</mx:Array>
</mx:columns>
</mx:DataGrid>
This way may not be best practice but to get you up and running this should
help. If you need anymore help just let me know.
Ben
----- Original Message ----
From: Stephen Adams <[EMAIL PROTECTED]>
To: [email protected]
Sent: Monday, November 27, 2006 10:32:29 AM
Subject: [flexcoders] Flex and CF (or how ActionScript is making me want to cry)
Hi,
I'm trying to get my head around using Flex with ColdFusion, but I'm really
getting stuck with how Flex works with CF.
I'm trying to create a application which has several forms in which the user
enters, save and update user details, simple stuff really. I can create the CF
code (using DAO's, gateways and Beans. But linking the methods in my CF to Flex
is melting my brain. Every example I've seen says it easy, and then uses tons
of ActionScript, which I get lost in.
SO what's the basic steps in linking CF and Flex, are they:
Create your CF code (DAO's, Bean's and Gateways)
Create your flex layout
Call the CF Gateway using <mx:RemoteObject>
Then link the results of the methods to the layout (this is the bit I'm lost
at, passing data back and forth to CF methods)
Any help will be great and stop me running down the road screaming.
Thanks
Stephen
<!--
#ygrp-mlmsg {font-size:13px;font-family:arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family:Georgia;
}
#ygrp-text p{
margin:0 0 1em 0;
}
#ygrp-tpmsgs{
font-family:Arial;
clear:both;
}
#ygrp-vitnav{
padding-top:10px;
font-family:Verdana;
font-size:77%;
margin:0;
}
#ygrp-vitnav a{
padding:0 1px;
}
#ygrp-actbar{
clear:both;
margin:25px 0;
white-space:nowrap;
color:#666;
text-align:right;
}
#ygrp-actbar .left{
float:left;
white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
font-family:Verdana;
font-size:77%;
padding:15px 0;
}
#ygrp-ft{
font-family:verdana;
font-size:77%;
border-top:1px solid #666;
padding:5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom:10px;
}
#ygrp-vital{
background-color:#e0ecee;
margin-bottom:20px;
padding:2px 0 8px 8px;
}
#ygrp-vital #vithd{
font-size:77%;
font-family:Verdana;
font-weight:bold;
color:#333;
text-transform:uppercase;
}
#ygrp-vital ul{
padding:0;
margin:2px 0;
}
#ygrp-vital ul li{
list-style-type:none;
clear:both;
border:1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight:bold;
color:#ff7900;
float:right;
width:2em;
text-align:right;
padding-right:.5em;
}
#ygrp-vital ul li .cat{
font-weight:bold;
}
#ygrp-vital a {
text-decoration:none;
}
#ygrp-vital a:hover{
text-decoration:underline;
}
#ygrp-sponsor #hd{
color:#999;
font-size:77%;
}
#ygrp-sponsor #ov{
padding:6px 13px;
background-color:#e0ecee;
margin-bottom:20px;
}
#ygrp-sponsor #ov ul{
padding:0 0 0 8px;
margin:0;
}
#ygrp-sponsor #ov li{
list-style-type:square;
padding:6px 0;
font-size:77%;
}
#ygrp-sponsor #ov li a{
text-decoration:none;
font-size:130%;
}
#ygrp-sponsor #nc {
background-color:#eee;
margin-bottom:20px;
padding:0 8px;
}
#ygrp-sponsor .ad{
padding:8px 0;
}
#ygrp-sponsor .ad #hd1{
font-family:Arial;
font-weight:bold;
color:#628c2a;
font-size:100%;
line-height:122%;
}
#ygrp-sponsor .ad a{
text-decoration:none;
}
#ygrp-sponsor .ad a:hover{
text-decoration:underline;
}
#ygrp-sponsor .ad p{
margin:0;
}
o {font-size:0;}
.MsoNormal {
margin:0 0 0 0;
}
#ygrp-text tt{
font-size:120%;
}
blockquote{margin:0 0 0 4px;}
.replbq {margin:4;}
-->