Alex, Its simple. Please, run the application in debug mode and change any cell in DataGrid.
The event "changeData" is fired twice. None attribute has the old value. Thanks for you help! Marcio N. --- In [email protected], "Alex Harui" <[EMAIL PROTECTED]> wrote: > > I'll try to take a look later. What are the steps to recreate the problem? > > > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Marcio Napoli > Sent: Tuesday, August 28, 2007 10:33 AM > To: [email protected] > Subject: [flexcoders] Re: Help > > > > Hey Alex, > > Here is the code. > > Thanks, > Marcio N. > > <?xml version="1.0" encoding="utf-8"?> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml> " > layout="absolute" creationComplete="myInitialize(event)"> > <mx:Script> > <![CDATA[ > import mx.collections.ICollectionView; > import mx.events.CollectionEventKind; > import mx.events.PropertyChangeEvent; > import mx.events.CollectionEvent; > > [Bindable] private var DATAPACKET: XML = <dados> > <row> > <data>17/01/2007</data> > <evento>POSICIONAMENTO DE OS</evento> > <usuario>MARCOSA</usuario> > <consulta></consulta> > </row> > </dados> > > public function myInitialize > (event:Event):void { > ((ICollectionView) > (grid.dataProvider)).addEventListener > (CollectionEvent.COLLECTION_CHANGE, changeData); > } > > public function changeData(event: > CollectionEvent): void { > //Alert.show(event.items.toString()); > //Alert.show(event.toString()); > //trace(DATAPACKET); > //trace(event.items.length); > //trace(grid.selectedIndex); > trace(event.type); > trace(event.location); > > trace(event.oldLocation); > > > trace('size > = '+event.items.length); > > if (event.items.length > 0) { > if (event.items[0] is > PropertyChangeEvent) { > var pce: > PropertyChangeEvent = event.items[0] as PropertyChangeEvent; > trace('type > ='+pce.kind); > if (pce.kind == > CollectionEventKind.UPDATE) { > trace > ('field = '+pce.property); // nome do campo > trace > ('source = '+pce.source); > trace > ('target = '+pce.target); > > trace > ('value = '+pce.source[pce.property]); // linha > trace > ('oldvalue = '+pce.oldValue); > > trace > ('newValue = '+pce.newValue); > > //DATAPACKET.dados.row.{pce.property} = pce.source > {pce.property}; > //trace > (pce.source[pce.property]); > trace('grid > index = '+grid.selectedIndex); > // trace > (DATAPACKET.row[grid.selectedIndex]); > } > //Alert.show > (PropertyChangeEvent(event.items[0]).newValue.toString()); > } > } > //Alert.show(event.toString()); > } > > ]]> > </mx:Script> > <mx:DataGrid id="grid" editable="true" width="100%" > height="100%" x="0" y="0" dataProvider="{DATAPACKET.row}" > selectedIndex="0"> > <mx:columns> > <mx:DataGridColumn width="100" > headerText="Data" dataField="data"/> > <mx:DataGridColumn width="300" > headerText="Evento" dataField="evento"/> > <mx:DataGridColumn width="100" > headerText="Usuário" dataField="usuario"/> > <mx:DataGridColumn width="100" > headerText="Consulta" dataField="consulta"/> > > </mx:columns> > </mx:DataGrid> > </mx:Application> > > --- In [email protected] <mailto:flexcoders% 40yahoogroups.com> , "Alex Harui" <aharui@> wrote: > > > > Please post a sample app > > > > > > > > ________________________________ > > > > From: [email protected] <mailto:flexcoders% 40yahoogroups.com> > [mailto:[email protected] <mailto:flexcoders% 40yahoogroups.com> ] On > > Behalf Of Marcio Napoli > > Sent: Tuesday, August 28, 2007 4:42 AM > > To: [email protected] <mailto:flexcoders% 40yahoogroups.com> > > Subject: [flexcoders] Re: Help > > > > > > > > Hey Alex, > > > > I have tryed already! But in all scenarios the XML (DATAPACKET) is > > updated. So, i can't get the old values. > > > > Thanks, > > Marcio > > > > --- In [email protected] <mailto:flexcoders% 40yahoogroups.com> <mailto:flexcoders% > 40yahoogroups.com> > > , "Alex Harui" <aharui@> wrote: > > > > > > Try tracing using toXMLString(). > > > > > > ________________________________ > > > > > > From: [email protected] <mailto:flexcoders% 40yahoogroups.com> <mailto:flexcoders% > 40yahoogroups.com> > > > > [mailto:[email protected] <mailto:flexcoders% 40yahoogroups.com> <mailto:flexcoders% > 40yahoogroups.com> > > ] On > > > Behalf Of Marcio Napoli > > > Sent: Monday, August 27, 2007 11:36 AM > > > To: [email protected] <mailto:flexcoders% 40yahoogroups.com> <mailto:flexcoders% > 40yahoogroups.com> > > > Subject: [flexcoders] Re: Help > > > > > > > > > > > > > > > Hey Alex, > > > > > > As any change in DataGrid will modify my XML everything could be > > > changed in XML. However my XML has the following structure: > > > "date", "event" and "user" and this nodes are DataGridColumn. > > > > > > So when i change one cell in DataGrid the event "changeData" is > > fired. > > > > > > Could u help me ? > > > > > > Thanks, > > > Marcio N. > > > > > > --- In [email protected] <mailto:flexcoders% 40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% > > 40yahoogroups.com> > > > , "Alex Harui" <aharui@> wrote: > > > > > > > > What did you change in the XML? > > > > > > > > ________________________________ > > > > > > > > From: [email protected] <mailto:flexcoders% 40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% > > 40yahoogroups.com> > > > > > > [mailto:[email protected] <mailto:flexcoders% 40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% > > 40yahoogroups.com> > > > ] On > > > > Behalf Of Marcio Napoli > > > > Sent: Wednesday, August 22, 2007 7:00 AM > > > > To: [email protected] <mailto:flexcoders% 40yahoogroups.com> <mailto:flexcoders% > 40yahoogroups.com> > > <mailto:flexcoders% > > 40yahoogroups.com> > > > > Subject: [flexcoders] Help > > > > > > > > > > > > > > > > Hi All, > > > > > > > > I am having problems with collection, when i change the value > of > > > one > > > > registry to a new value i lost the old one. For example: > > > > > > > > [Bindable] private var DATAPACKET: XML = <data> > > > > <row> > > > > <date>17/01/2007</date> > > > > <event>Event 01</event> > > > > <user>MARCOSA</user> > > > > </row> > > > > </data> > > > > > > > > ((ICollectionView) (grid.dataProvider)).addEventListener > > > > (CollectionEvent.COLLECTION_CHANGE, changeData); > > > > > > > > public function changeData(event: CollectionEvent): void { > > > > if (event.items.length > 0) { > > > > if (event.items[0] as PropertyChangeEvent) { > > > > var pce: PropertyChangeEvent = event.items[0] as > > > > PropertyChangeEvent; > > > > if (pce.kind == CollectionEventKind.UPDATE) { > > > > trace(pce.source); > > > > trace > > > > (pce.target); > > > > trace(pce.property); > > > > trace > > > > (pce.oldValue); > > > > trace(pce.newValue); > > > > trace(DATAPACKET.row[grid.selectedIndex]); > > > > } > > > > } > > > > } > > > > } > > > > > > > > In my sample the attributes "pce.oldValue" and "pce.newValue" > are > > > > null. > > > > The "pce.source" is with new value and my var "datapacket" > > already > > > > updated. > > > > So, how can i get the old value? > > > > > > > > Thanks, > > > > Marcio Napoli > > > > napoli@ <mailto:napoli%40stela.org.br> > > > > > > > > > >

