Hi, I’m not sure I fully got it, but I noticed one thing: Bubbled events rarely, if ever, get dispatched again. It looks like a ChangeTrip event gets dispatched by Child and then again by Parent. Bubbles bubble to the top, so dispatching once from Child should bubble through the Parent and then on to the GrandParent.
Even with that, you may also be facing timing issues around the way components react to change events. Properties like selectedIndex/selectedItem may not be updated the instant you change the datalist. The DG may need to call validateNow() on itself to fully update before the grandparent gets the event. HTH, -Alex On 12/6/14, 1:15 PM, "CodeGirl" <[email protected]> wrote: >I have created mxml files which contain datagrids for my web service data >tables. for this question, we are going to call these files parent >files. >I have also created AS files to hold the data and the service calls to >obtain the data. For this question, we are going to call these files >child >files. When I design a screen, I create a mxml file which instantiates >multiple of the mxml files which contain the datagrids I wish for this >view. >For this question, we are going to call these files Grandparent files. > >So, I have a "GrandParent" mxml file which contains an instance of a >second >mxml file: > ><fx:Metadata> > [Event(name="tripChanged", type="events.ChangeTrip")] ></fx:Metadata> > ><fx:Script> ><![CDATA[ >protected function tripsDG_tripChangedHandler(event:ChangeTrip):void >{ > tripLegsDG.tripID = event.tripID; >} > ><s:VGroup width="100%" height="75%"> > > <dg:TripsDG id="tripsDG" > width="100%" height="66%" > > tripChanged="tripsDG_tripChangedHandler(event)" > /> > >In the "Parent" mxml file called TripDG I have the change event for the >datagrid: > > protected function > tripsDG_changeHandler(event:ListEvent):void > { > var eventObject:ChangeTrip = new > ChangeTrip("tripChanged", >tripsDG.selectedItem.id); > dispatchEvent(eventObject); > } > >Also in the "Parent" mxml file when a new item is entered and it is saved >to >the webservice and the result is returned and the result event is >triggered >then I dispatched another changeTrip event to reflect the newly assigned >id >which is assigned by the Database when a new record is saved. > >When this was all I had, this was working fine. But when I moved the >datalist and the service calls to my "Child" AS file, this is when things >stopped working. > >At first, I realized when I dispatched the event in the AS file, it was >not >being seen by the "Parent" MXML file. And so I bubbled the event and >sure >enough, it was bubbled to the "parent" Except when I was debugging, I >noticed the new id was not available yet in the result event which I am >not >sure why but evidently this was no problem when the result function was in >the mxml file because it was bound by probably some pointer and so when >the >lastresult was finally available then the datagrid was updated and then >evidently somehow the "GrandParent" was being updated as well. > >Here is the "Child" AS : > > protected function > setTripResult_resultHandler(event:ResultEvent):void > { > if (event.result != null) > { > var thisDTO:TripDTO = setTripResult.lastResult; > if (dataList[indx].id == 0) > { > dataList[indx] = thisDTO; > var eventObject:ChangeTrip = new > ChangeTrip("tripChanged", >thisDTO.id, >true); > var dispatch:EventDispatcher = new > EventDispatcher(); > dispatch.dispatchEvent(eventObject); > } > if (thisDTO.archived != null) > { > dataList.removeItemAt(indx); > } > Alert.show(updateSuccessMessage); > } > } > >So, it looks like the "Child" as file is bubbling up the tripChanged event >to the "Parent" MXML file except at that moment, it only has the id as 0 >instead of the return id value. But since the event is no longer in the >"Parent" mxml file, it seems as if the link is broke some how and the >event >and data is not bubbled up the "GrandParent". I discovered this because >I >put a break point to test it and it never triggered. So, with all this >said, Does anyone know how I can make the connections so when the result >event is triggered in the "Child" As file that the tripChange event is >then >fired in the "GrandParent" mxml file? > > > > >-- >View this message in context: >http://apache-flex-users.2333346.n4.nabble.com/Bubbling-to-a-Grandparent-t >p8997.html >Sent from the Apache Flex Users mailing list archive at Nabble.com.
