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.
>
>
>
>  
>

Reply via email to