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" 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]> wrote: > > Yeah, should've worked. Something else is going on. Can you make a > simple test case? > > > ------------------------------ > > *From:* [email protected] [mailto:[EMAIL PROTECTED] *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]> 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:[EMAIL PROTECTED] *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. > > > > >

