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: [email protected]
>To: [email protected]
>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

<*> 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/
 



Reply via email to