Hi Vaibhav, Sorry no use ,still not working .
Regards Kiran On Wed, Nov 4, 2009 at 12:38 PM, Vaibhav Seth <seth.vaibhav...@gmail.com>wrote: > To avoid such kind of issues, better use Cairngorm. > I doubt the problem is Binding. You have to bind data with the dataprovider > of your component. So that, whenever your data will get populated it will be > reflected in the component. Try using: > [Bindable]private var _data:XMLList; > > > > > > On Wed, Nov 4, 2009 at 11:59 AM, Kiran Kumar Vasireddy < > kiranv...@gmail.com> wrote: > >> Thanks Vaibhav and Andrea for your suggestions. >> >> Andrea : You suggestion looks working , But got in one more problem . >> Could you please help me ? >> >> If I call SingletonXML.getInstance().data; It is returning Null because >> the of getResult() is returning the data later . Since the calls are >> asynchronous get Data() is getting called first and then getResult(). >> >> I checked the event data and data is there in the event . >> >> I came into this problem because of "<XML source = "is crashing my IE7, >> Otherwise I could have done it using XML tag instead HTTPService ( for local >> data I am using HTTPService ) . Please see the code below. >> >> >> >> package Components >> { >> import mx.controls.Alert; >> import mx.rpc.events.ResultEvent; >> import mx.rpc.http.HTTPService; >> >> >> public class SingletonXML >> { >> private static var _instance: SingletonXML; >> private var _data:XMLList; >> >> public function SingletonXML() { >> >> if (_instance != null) >> trace("Constructor shouldn't be called >> directly... now I'll have to kill you") >> _instance = this; >> this.initData(); >> } >> >> private function initData():void { >> var service:HTTPService =new HTTPService(); >> service.url="Components/StudentData.xml"; >> service.resultFormat="e4x"; >> service.addEventListener("result", getResult); >> service.send(); >> >> } >> private function onDataLoaded():void { >> >> //Store data >> //this._data = [loaded data]; >> >> } >> >> private function getResult(event:ResultEvent):void{ >> Alert.show("this is in get result"); >> >> _data=XMLList(event.result.Country); >> >> } >> >> public static function getInstance():SingletonXML{ >> if (! _instance) >> _instance = new SingletonXML(); >> >> return _instance; >> } >> >> public function get data():XMLList { >> Alert.show("this is in get data"); >> return this._data; >> >> >> } >> } >> } >> >> On Tue, Nov 3, 2009 at 4:38 PM, Andrea Giorgetta < >> andreagiorge...@gmail.com> wrote: >> >>> Hi Kiran. >>> I think you should create a "ModelLocator" singleton class, that gets and >>> store the xml information. It would be something like this: >>> >>> public class MyModelLocator >>> { >>> private static var _instance: MyModelLocator; >>> private var _data:XMLList; >>> >>> public function MyModelLocator() { >>> if (_instance != null) >>> trace("Constructor shouldn't be called directly... now >>> I'll have to kill you") >>> _instance = this; >>> this.initData(); >>> } >>> >>> private function initData():void { >>> //Load data.... >>> } >>> private function onDataLoaded() { >>> //Store data >>> this._data = [loaded data]; >>> } >>> >>> public static function getInstance():MyModelLocator{ >>> if (! _instance) >>> _instance = new MyModelLocator(); >>> return _instance; >>> } >>> >>> public function get data():XMLList { >>> return this._data; >>> } >>> } >>> >>> In order to get data in each combobox, you would set >>> dataprovider="{MyModelLocator.getInstance.data}" (if that XMLList already >>> has the correct structure to be directly used as a dataprovider in the >>> combobox... otherwise now is the time to change it ;) ) >>> This way: >>> - There's only one instance of MyModelLocator at anytime, anywhere. >>> - initData is called only once, so the data is retrieved only once. >>> - By storing the data within the singleton class, it's available to the >>> whole application by just importing the class. >>> >>> >>> Hope it solves your issue. >>> Best regards >>> Andrea. >>> >>> >>> >>> >>> On Tue, Nov 3, 2009 at 5:59 PM, Kiran Kumar Vasireddy < >>> kiranv...@gmail.com> wrote: >>> >>>> Hi , >>>> >>>> I am calling httpservice.send() method and getting the data and >>>> populating it in XMLList . I want this step to be done only once and want >>>> to >>>> reuse the data what ever I got . >>>> My scenario is like this >>>> >>>> 1)Creating Custom combobox component >>>> 2) Calling send() in the custom component and populating the combobox >>>> >>>> I want to create around 5 instances of the above component . But what is >>>> happening is the send() is getting called again and again . Is there any >>>> way >>>> to restrict this and get the data only once and use it for my 5 instances . >>>> The problem here is If I use http send() method when I load the application >>>> , This works perfect . But we want that to be called only from component >>>> and >>>> want to use the same component again and again. >>>> >>>> Thanks for your help >>>> Kiran >>>> >>>> >> >> >> > > > -- > Thanks, > Vaibhav Seth. > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Flex India Community" group. To post to this group, send email to flex_india@googlegroups.com To unsubscribe from this group, send email to flex_india+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/flex_india?hl=en -~----------~----~----~----~------~----~------~--~---