This is all very normal functionality.  If something is not working I
would suspect something in your code, of which we have not seen much
yet.  As I suggested, try narrowing down the conditions.

 

Tracy

 

________________________________

From: [email protected] [mailto:[email protected]] On
Behalf Of Sefi Ninio
Sent: Sunday, December 28, 2008 3:55 AM
To: [email protected]
Subject: Re: [flexcoders] Datagrid not updating when dataProvider is
changed.

 

I did some more tests and debuging, and it turns out the dataprovider of
the DG does get updated.
But, for some reason - the labelFunction still gets the stale data...
When viewing the DG code (and it's super, and it's super's super, etc...
:)), it turns out that when the dataprovider gets updated, the data is
invalidated to be updated in the next frame - and that's the pitfall I
was falling into... :(

I couldn't find a decent solution to this problem, other than using
callLater (which I hate)...

Sefi

On Fri, Dec 26, 2008 at 6:27 PM, Tracy Spratt <[email protected]
<mailto:[email protected]> > wrote:

Hmm, in my experience, re-assigning the dataProvider always results in
full re-rendering of the DataGrid. See if you can narrow down where the
problem is ocurring.  Use a bindable var as the dataProvider, or
updating the dp in different ways, or not using labelFunction.

 

Tracy

 

________________________________

From: [email protected] <mailto:[email protected]>
[mailto:[email protected] <mailto:[email protected]> ]
On Behalf Of Sefi Ninio
Sent: Thursday, December 25, 2008 2:14 AM
To: [email protected] <mailto:[email protected]> 
Subject: Re: [flexcoders] Datagrid not updating when dataProvider is
changed.

 

I'm combining two arrays into a temp arrayCollection and setting the
temp source into a new arrayCollection
dataProvider = new ArrayCollection(tempAC.source);

This dispatched a CellectionEvent.COLLECTION_CHANGED event with
kind=reset, and should update the DG...

On Wed, Dec 24, 2008 at 7:08 PM, Tracy Spratt <[email protected]
<mailto:[email protected]> > wrote:

How are you updating the data provider items?  If you are using the
collection API, like setItemAt(), the necessary events will be
dispatched and the DataGrid will visually update.  If you are directly
assigning propety values to individual items, then you will need to call
itemUpdated(item).

 

Tracy

 

________________________________

From: [email protected] <mailto:[email protected]>
[mailto:[email protected] <mailto:[email protected]> ]
On Behalf Of Sefi Ninio
Sent: Wednesday, December 24, 2008 5:02 AM
To: [email protected] <mailto:[email protected]> 
Subject: [flexcoders] Datagrid not updating when dataProvider is
changed.

 

Hi all.

I have a wierd situation, hopefully someone here can help.

I have a DataGrid's dataprovider bound to an myDP ArrayCollection (it is
defined as [Bindable]). Each column in the DG has a labelFunction.
When I set the myDP values for the first time, everything is sweet, the
data is displayed correctly.

When I update the myDP with new data, however, everything goes wrong.
The labelFunctions still get the stale data (from before the update),
and so the grid shows old data.
I verified the new data is updated to the DG's dataProvider (added a
listener to datagrid for CollectionEvent.COLLECTION_CHANGE - the new
data is updated in the DG dataprovider - checked in event's
currentTarget).

I can't understand why the dataprovider is updated and still the
labelFunction's item:Object contain old data...

Any ideas anyone?

Thanks,
Sefi

 

 

 

Reply via email to