Ah yes, I didn't actually run it, but as I was setting it up I realized that you have to send notification to the responders that attached themselves to the IPE. Otherwise the UI is locked up waiting for the item to say that it is available.
I'll send you something off-list. ________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Daniel Freiman Sent: Tuesday, October 23, 2007 12:10 PM To: [email protected] Subject: Re: [flexcoders] DataGrid not updating when dataProvider is updated My guess would be that it's the ItemPendingError that's screwing something up, because I don't know how that error is supposed to be used. - Dan Freiman <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml> " layout="vertical" applicationComplete="init()"> <mx:Script> <![CDATA[ public function init():void { dg.dataProvider = new SimpleDocumentList(null); } public function setLength():void { dg.dataProvider.source = new Array(50); } public function setData():void { dg.dataProvider.setItemAt({item1:"Item 1", item2:"Item 2", item3:1},0); } ]]> </mx:Script> <mx:DataGrid id="dg"/> <mx:Button label="Set Length" click="setLength()"/> <mx:Button label="Set Data" click="setData()"/> </mx:Application> package { import mx.collections.ArrayCollection; import mx.collections.errors.ItemPendingError; public class SimpleDocumentList extends ArrayCollection { public function SimpleDocumentList(source:Array=null) { super(source); } override public function getItemAt(index:int, prefetch:int=0):Object { var result:Object = super.getItemAt(index); if (result == null) { throw new ItemPendingError("Item Pending"); } trace(result); return result; } } } On 10/23/07, Alex Harui <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > wrote: Yeah, should've worked. Something else is going on. Can you make a simple test case? ________________________________ From: [EMAIL PROTECTED] ups.com [mailto:[email protected] <http://yahoogroups.com> ] On Behalf Of Daniel Freiman Sent: Tuesday, October 23, 2007 9:53 AM To: [email protected] Subject: Re: [flexcoders] DataGrid not updating when dataProvider is updated I'm only overriding one retrieval method, so shouldn't ArrayCollection being doing this for me? - Dan Freiman On 10/23/07, Dimitrios Gianninas <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > wrote: You have to make sure your custom ArrayCollection throw the "change" event I believe the DG looks for this. (could be another event name, not sure, you will need to check the docs) Dimitrios Gianninas RIA Developer and Team Lead Optimal Payments Inc. ________________________________ From: [email protected] [mailto:flexcoders@ yahoogroups.com <http://yahoogroups.com> ] On Behalf Of Daniel Freiman Sent: Tuesday, October 23, 2007 11:04 AM To: flexcoders Subject: [flexcoders] DataGrid not updating when dataProvider is updated I'm not sure if my code has a bug or if I don't understand how the DataGrid is supposed to work. I have a DataGrid with a dataProvider that extends ArrayCollection. The only overridden behavior is that if dataProvider is supposed to return null, it throws an ItemPendingError instead. Here's psuedo-code for what's going on: dataGrid.dataProvider = new ArrayCollectionExt(); // works, dataGrid is blank dataGrid.dataProvider.source = new Array(newLength); // works, DataGrid gains scrollbar and has no values dataGrid.dataProvider.setItemAt(objectSource, 0); // dataGrid is not updated. Am I doing something fundamentally wrong or do I need to track down a bug in my code? Thanks, - Dan Freiman AVIS IMPORTANT WARNING Ce message électronique et ses pièces jointes peuvent contenir des renseignements confidentiels, exclusifs ou légalement privilégiés destinés au seul usage du destinataire visé. L'expéditeur original ne renonce à aucun privilège ou à aucun autre droit si le présent message a été transmis involontairement ou s'il est retransmis sans son autorisation. Si vous n'êtes pas le destinataire visé du présent message ou si vous l'avez reçu par erreur, veuillez cesser immédiatement de le lire et le supprimer, ainsi que toutes ses pièces jointes, de votre système. La lecture, la distribution, la copie ou tout autre usage du présent message ou de ses pièces jointes par des personnes autres que le destinataire visé ne sont pas autorisés et pourraient être illégaux. Si vous avez reçu ce courrier électronique par erreur, veuillez en aviser l'expéditeur. This electronic message and its attachments may contain confidential, proprietary or legally privileged information, which is solely for the use of the intended recipient. No privilege or other rights are waived by any unintended transmission or unauthorized retransmission of this message. If you are not the intended recipient of this message, or if you have received it in error, you should immediately stop reading this message and delete it and all attachments from your system. The reading, distribution, copying or other use of this message or its attachments by unintended recipients is unauthorized and may be unlawful. If you have received this e-mail in error, please notify the sender.

