Thanks, that worked perfectly and I learned a lot =) cheers, ethan > Ethan, > > Yup, that was it. This works (although it's certainly not the only > way to > do it)... > > <?xml version="1.0" encoding="utf-8"?> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > layout="absolute" > creationPolicy="all"> > > <mx:Script> > <![CDATA[ > [Bindable] > public var blogResult : Object; > > public function changeVS() : void{ > postKeywords.text = ""; > postTypeVS.selectedIndex = (whatPostsCB.selectedItem.data == > "popular") > ? 1 : 0 ; > refresh(); > } > > public function refresh() : void { > if (whatPostsCB.selectedItem.data == "popular") > blogAggrWS.getMostPopularPosts.send(); > else > blogAggrWS.search.send(); > } > ]]> > </mx:Script> > > <mx:WebService id="blogAggrWS" > wsdl="http://weblogs.macromedia.com/mxna/webservices/mxna2.cfc?wsdl" > useProxy="false" showBusyCursor="true"> > > <mx:operation name="getMostPopularPosts" > result="blogResult=event.result;"> > <mx:request> > <daysBack>{daysBackCB.value}</daysBack> > <limit>{numPostsCB.value}</limit> > </mx:request> > </mx:operation> > > <mx:operation name="search" result="blogResult=event.result;"> > <mx:request> > <offset>0</offset> > <limit>50</limit> > <searchTerms>{postKeywords.text}</searchTerms> > <sortBy>relevance</sortBy> > <languageIds>1</languageIds> > </mx:request> > </mx:operation> > > <mx:operation name="getLanguages"> > <mx:request/> > </mx:operation> > > </mx:WebService> > > <mx:Panel width="850" height="400" layout="absolute" > horizontalCenter="0" > verticalCenter="0" title="Adobe Blogs Post Finder"> > > <mx:HBox horizontalCenter="0" top="20" verticalAlign="middle"> > > <mx:Label text="Get:"/> > > <mx:ComboBox id="whatPostsCB" change="changeVS()"> > <mx:Object label="Posts By Keyword" data="search" /> > <mx:Object label="Most Popular Posts" data="popular" /> > </mx:ComboBox> > > <mx:ViewStack id="postTypeVS" width="400"> > > <mx:HBox verticalAlign="middle"> > <mx:TextInput id="postKeywords" text=""/> > <mx:Button label="Search" click="refresh()"/> > </mx:HBox> > > <mx:HBox verticalAlign="middle" width="372"> > > <mx:Spacer width="10"/> > > <mx:Label text="Show:"/> > <mx:ComboBox id="numPostsCB" change="refresh()" selectedIndex="0"> > <mx:Object label="Top 5 Posts" data="5" /> > <mx:Object label="Top 10 Posts" data="10" /> > <mx:Object label="Top 15 Posts" data="15" /> > </mx:ComboBox> > > <mx:Spacer width="10"/> > > <mx:Label text="In Last:"/> > <mx:ComboBox id="daysBackCB" change="refresh()" selectedIndex="0"> > <mx:Object label="30 Days" data="30" /> > <mx:Object label="60 Days" data="60" /> > <mx:Object label="90 Days" data="90" /> > </mx:ComboBox> > > </mx:HBox> > > </mx:ViewStack> > > </mx:HBox> > > <mx:DataGrid left="20" right="20" top="62" bottom="20" id="keyPostsDG" > dataProvider="{blogResult}"> > <mx:columns> > <mx:DataGridColumn headerText="Post Title" textAlign="left"> > <mx:itemRenderer> > <mx:Component> > <mx:LinkButton label="{data.postTitle}" > click="navigateToURL(new URLRequest(data.postLink))" > color="blue"/> > </mx:Component> > </mx:itemRenderer> > </mx:DataGridColumn> > <mx:DataGridColumn headerText="Clicks" dataField="clicks" width="50" > textAlign="right"/> > <mx:DataGridColumn headerText="Post Excerpt" dataField="postExcerpt" > wordWrap="true"/> > </mx:columns> > </mx:DataGrid> > > </mx:Panel> > > </mx:Application> > > Darren > > >From: "Darren Houle" <[EMAIL PROTECTED]> > >Reply-To: flexcoders@yahoogroups.com > >To: flexcoders@yahoogroups.com > >Subject: RE: [flexcoders] Variable Type for Web Service Result > >Date: Wed, 23 Aug 2006 22:44:48 -0400 > > > >Ethan, > > > >I don't think it's your typing, I think it's your timing. Looks like > >you're > >flipping your postTyper() when the combobox is changed, but that's > not > >firing a new send() like the original blogger example did. Try > changing > >your code so that changing the combobox triggers the send() and > the send > >result="" handler triggers the postTyper(). That way you'll have the > >correct data in lastResult when you change your blogResult > variable. That > >change should then be noticed by the bindings. > > > >Darren > > > > > > >From: Ethan Miller <[EMAIL PROTECTED]> > > >Reply-To: flexcoders@yahoogroups.com > > >To: flexcoders@yahoogroups.com > > >Subject: [flexcoders] Variable Type for Web Service Result > > >Date: Wed, 23 Aug 2006 16:13:19 -0700 > > > > > >Greetings - > > > > > >Expanding on the "Connecting to Web Services" tutorial, I added a > > >combo box for switching between methods of the API to the Adobe > blog > > >aggregator, ie from getMostPopularPosts to search. > > > > > >As both methods return the same columns, the data grid > displaying the > > >result can stay the same, other than needing a different value for > > >data provider, ie: > > > > > > myWebService.getMostPopularPosts.lastResult > > >vs > > > myWebService.search.lastResult > > > > > >I was hoping therefore to bind the dataGrid dataProvider value to a > > >variable which I'd set when users change the value of the comboBox > > >(which selects which method to use). However I think I'm typing the > > >variable which stores the value of the service result wrong, as > I get > > >null whenever I try and set the value (blogResult), show below: > > > > > ><?xml version="1.0" encoding="utf-8"?> > > ><mx:Application > > > xmlns:mx="http://www.adobe.com/2006/mxml" > > > layout="absolute"> > > > > > ><mx:Script> > > > <![CDATA[ > > > > > > [Bindable] > > > public var blogResult:Object = null; > > > > > > public function postTyper(event:Event):void{ > > > if (event.currentTarget.selectedItem.data == "popular"){ > > > postTypeVS.selectedIndex=1; > > > blogResult = blogAggrWS.getMostPopularPosts.lastResult; > > > trace (blogResult); > > > } > > > else{ > > > postTypeVS.selectedIndex=0; > > > blogResult = blogAggrWS.search.lastResult; > > > trace (blogResult); > > > } > > > } > > > ]]> > > ></mx:Script> > > > > > > <mx:WebService id="blogAggrWS" > > > wsdl="http://weblogs.macromedia.com/mxna/webservices/mxna2.cfc? > > >wsdl" > > > useProxy="false"> > > > > > > <mx:operation name="getMostPopularPosts"> > > > <mx:request> > > > <daysBack>{daysBackCB.value}</daysBack> > > > <limit>{numPostsCB.value}</limit> > > > </mx:request> > > > </mx:operation> > > > > > > <mx:operation name="search"> > > > <mx:request> > > > <offset>0</offset> > > > <limit>50</limit> > > > <searchTerms>{postKeywords.text}</searchTerms> > > > <sortBy>relevance</sortBy> > > > <languageIds>1</languageIds> > > > </mx:request> > > > </mx:operation> > > > > > > <mx:operation name="getLanguages"> > > > <mx:request/> > > > </mx:operation> > > > > > > </mx:WebService> > > > > > > <mx:Panel > > > width="850" height="400" > > > layout="absolute" > > > horizontalCenter="0" verticalCenter="0" > > > title="Adobe Blogs Post Finder"> > > > > > > <mx:HBox horizontalCenter="0" top="20" verticalAlign="middle"> > > > > > > <mx:Label text="Get:"/> > > > > > > <mx:ComboBox id="whatPostsCB" > > > change="postTyper(event)"> > > > <mx:Object label="Posts By Keyword" data="search" /> > > > <mx:Object label="Most Popular Posts" data="popular" /> > > > </mx:ComboBox> > > > > > > <mx:ViewStack id="postTypeVS" width="400"> > > > > > > <mx:HBox verticalAlign="middle"> > > > <mx:TextInput id="postKeywords" text=""/> > > > <mx:Button label="Search" click="blogAggrWS.search.send()"/> > > > </mx:HBox> > > > > > > <mx:HBox verticalAlign="middle" width="372" > > > creationComplete="blogAggrWS.getMostPopularPosts.send()"> > > > > > > <mx:Spacer width="10"/> > > > > > > <mx:Label text="Show:"/> > > > <mx:ComboBox id="numPostsCB" > > > change="blogAggrWS.getMostPopularPosts.send()"> > > > <mx:Object label="Top 5 Posts" data="5" /> > > > <mx:Object label="Top 10 Posts" data="10" /> > > > <mx:Object label="Top 15 Posts" data="15" /> > > > </mx:ComboBox> > > > > > > <mx:Spacer width="10"/> > > > > > > <mx:Label text="In Last:"/> > > > <mx:ComboBox id="daysBackCB" > > > change="blogAggrWS.getMostPopularPosts.send()"> > > > <mx:Object label="30 Days" data="30" /> > > > <mx:Object label="60 Days" data="60" /> > > > <mx:Object label="90 Days" data="90" /> > > > </mx:ComboBox> > > > > > > </mx:HBox> > > > > > > </mx:ViewStack> > > > > > > </mx:HBox> > > > > > > <mx:DataGrid left="20" right="20" top="62" bottom="20" > id="keyPostsDG" > > > dataProvider="{blogResult}"> > > > <mx:columns> > > > <mx:DataGridColumn headerText="Post Title" textAlign="left"> > > > <mx:itemRenderer> > > > <mx:Component> > > > <mx:LinkButton label="{data.postTitle}" > > > click="navigateToURL(new URLRequest(data.postLink))" > > > color="blue"/> > > > </mx:Component> > > > </mx:itemRenderer> > > > </mx:DataGridColumn> > > > <mx:DataGridColumn headerText="Clicks" dataField="clicks" > > >width="50" textAlign="right"/> > > > <mx:DataGridColumn headerText="Post Excerpt" > > >dataField="postExcerpt" wordWrap="true"/> > > > </mx:columns> > > > </mx:DataGrid> > > > > > > </mx:Panel> > > > > > ></mx:Application> > > > > > > > > > > > >-- > > >Flexcoders Mailing List > > >FAQ: http://groups.yahoo.com/group/flexcoders/files/ > flexcodersFAQ.txt > > >Search Archives: http://www.mail-archive.com/flexcoders% > 40yahoogroups.com > > >Yahoo! Groups Links > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >-- > >Flexcoders Mailing List > >FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > >Search Archives: http://www.mail-archive.com/flexcoders% > 40yahoogroups.com > >Yahoo! Groups Links > > > > > > > > > > > > > > > > >
-- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/