Cool!  I figured somebody would know a way around this.  Just to confirm,
when the reassignment of the dataProvider is done it will cause the Repeater
to redraw/refresh all of its components and sub-components.  

Hmmm now to find a way to do something similar with disparate types of
sub-components so that based on the dataProvider array the creation is
different.  

        Thanks,

        -Kent

-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Tracy Spratt
Sent: Tuesday, June 28, 2005 12:33 PM
To: [email protected]
Subject: RE: [flexcoders] Confusion with mx:Repeater

Interesting.  After the removeItemAt call, the next time
getRepeaterItem() is called it returns undefined.

We might investigate further, but I got this to work by using array
methods on the data provider, then re-assigning it to the repeater:

        for (var i = 0; i < itemList.length; i++) {
        if (itemList[i].itemId == itemId) {        
          //itemList.removeItemAt(i);
            itemList.splice(i,1)
          break;
        }
      }
        items.dataProvider = itemList;

Tracy


-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Kent Henneuse
Sent: Tuesday, June 28, 2005 1:25 PM
To: [email protected]
Subject: [flexcoders] Confusion with mx:Repeater

I get the basic concepts of Repeaters and have successfully gotten one
to
show me one via a dataprovider.  I am now having a bit of trouble
understanding how to manipulate items in the Repeater.  I know that I
have
to be careful with data in Arrays because they will not fire
ChangeEvents
but that doesn't seem to be a problem so far.  

Below is a test screen that I wrote.  If I remove the last item first,
and
then the remaining item it works.  If I remove the first item and then
try
to remove the remaining item, the remaining item is not removed.  I am
sure
this is probably a limited understanding of the calls and use of the
Repeater but the documentation seems a bit sketchy on them beyond just
for
display.

        Thanks,

        -Kent

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml";>

  <mx:Script>
    <![CDATA[
    var itemA = new Object(
      {itemId:'1', itemText:'Put something in the first box'});
    var itemB = new Object(
      {itemId:'2', itemText:'Put something in the second box'});

    var itemList = [itemA, itemB];

    public function removeItem(itemId:Number):Void {
      for (var i = 0; i < itemList.length; i++) {
        if (itemList[i].itemId == itemId) {        
          itemList.removeItemAt(i);
          break;
        }
      }
    }
    ]]>
  </mx:Script>

  <mx:Panel title="Items" width="100%">

    <mx:Repeater id="items" dataProvider="{itemList}">
      <mx:HBox>
        <mx:TextInput width="90%" text="{items.currentItem.itemText}"/>
        <mx:Button label="Remove"
          click="removeItem(event.target.getRepeaterItem(0).itemId)"/>
      </mx:HBox>
      <mx:HRule />
    </mx:Repeater>

  </mx:Panel>
</mx:Application>

I used to work in a fire hydrant factory. You couldn't park anywhere
near
the place.

   - Steven Wright 




--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links



 



Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to