Isn't an ArrayCollection essentially equivalent to a Query?

An array of objects...

Adobe and Macromedia are the same, CF and Flex sleep together, why don't they 
just call it a day?

----- Original Message ----
From: Douglas Knudsen <[EMAIL PROTECTED]>
To: flexcoders@yahoogroups.com
Sent: Saturday, March 24, 2007 6:48:59 PM
Subject: Re: [flexcoders] Repeater Refresh









  


    
            ArrayCollection is the path to enlightenment, yes, but a 
metaphysical nudge along this path is binadability

[Bindable]

public var myArrayCollection = new ArrayCollection( myArray);

DK


On 3/24/07, Jeffry Houser <[EMAIL PROTECTED] com
> wrote:












  


    
            



 I've done this with an ArrayCollections, but never with an
Array.  The code would be something like this:


<mx:Script>

<![CDATA[

public var myArray:Array = ['test1','test2','test3'];

public var myArrayCollection = new ArrayCollection( myArray);


public function addItem():void{

myArrayCollection. addItem('test4');

}

]]>

</mx:Script>

<mx:VBox>

<mx:Repeater id="rp"
dataProvider="{myArrayCollection}" >

<mx:TextInput id="myRepeat" />

</mx:Repeater>

<mx:Button label="click me" click="addItem();"
/>

</mx:VBox>




 A few caveats...  

a) I didn't test this code 

b) In my situation, I wasn't adding from the same component that was
displaying things, so the 'add' and 'display were never shown at the same
time.  There could have been other code that made the refresh work,
but I don't remember anything explicit. 

c) When accessing a repeater element you use currentIndex when it is
repeating, but repeaterIndex after the fact.  I haven't found a
simple way to switch between the two of them, but my solution was
something like this:


try{

return myArrayCollection. getItemAt( loop.currentInde x );

}

catch (e:Error){

return myArrayCollection. getItemAt( loop.repeaterInd ex );

}

 I imagine there must be a better way




At 05:35 PM 3/24/2007, you wrote:


here is a little test to
illustrate what I am trying to do (except it doesn't work.)  I was
hoping that updating the dataProvider would add another item to the
repeater...


<mx:Script>

<![CDATA[

public var
myArray:Array =
['test1','test2'
,'test3'];




public function
addItem():void{

myArray.push('test4');

}

]]>

</mx:Script>

<mx:VBox>

<mx:Repeater id="rp"
dataProvider="{
myArray}"
>

<mx:TextInput
id="myRepeat"
/>

</mx:Repeater>

<mx:Button label="click
me" click="addItem();"
/>

</mx:VBox>







On Mar 24, 2007, at 5:16 PM, Kevin wrote:


I have a repeater (adding
TextInput fields) that is bound to an 

ArrayCollection on my model. I was hoping that essentially I could 

add a row by just pushing a value into my ArrayCollection on the 

model. However, this isn't working. I assume I need to also 

"refresh" the repeater, but can't seem to figure out the best
way to 

do that.


Thanks, Kevin

 


--

Jeffry Houser, Software Developer, Writer, Songwriter, Recording
Engineer

AIM: Reboog711  | Phone: 1-203-379-0773

--

My Company:
<
http://www.dot- com-it.com> 

My Podcast:
<
http://www.theflexs how.com>

My Blog:
<
http://www.jeffryho user.com> 

Connecticut Macromedia User Group:
<
http://www.ctmug. com>





    

  

    
    
















-- 
Douglas Knudsen
http://www.cubiclem an.com
this is my signature, like it?

    
  

    
    




<!--

#ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean, sans-serif;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial, helvetica, clean, 
sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family:Georgia;
}
#ygrp-text p{
margin:0 0 1em 0;}
#ygrp-tpmsgs{
font-family:Arial;
clear:both;}
#ygrp-vitnav{
padding-top:10px;font-family:Verdana;font-size:77%;margin:0;}
#ygrp-vitnav a{
padding:0 1px;}
#ygrp-actbar{
clear:both;margin:25px 0;white-space:nowrap;color:#666;text-align:right;}
#ygrp-actbar .left{
float:left;white-space:nowrap;}
.bld{font-weight:bold;}
#ygrp-grft{
font-family:Verdana;font-size:77%;padding:15px 0;}
#ygrp-ft{
font-family:verdana;font-size:77%;border-top:1px solid #666;
padding:5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom:10px;}

#ygrp-vital{
background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;}
#ygrp-vital #vithd{
font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;}
#ygrp-vital ul{
padding:0;margin:2px 0;}
#ygrp-vital ul li{
list-style-type:none;clear:both;border:1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;}
#ygrp-vital ul li .cat{
font-weight:bold;}
#ygrp-vital a {
text-decoration:none;}

#ygrp-vital a:hover{
text-decoration:underline;}

#ygrp-sponsor #hd{
color:#999;font-size:77%;}
#ygrp-sponsor #ov{
padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;}
#ygrp-sponsor #ov ul{
padding:0 0 0 8px;margin:0;}
#ygrp-sponsor #ov li{
list-style-type:square;padding:6px 0;font-size:77%;}
#ygrp-sponsor #ov li a{
text-decoration:none;font-size:130%;}
#ygrp-sponsor #nc {
background-color:#eee;margin-bottom:20px;padding:0 8px;}
#ygrp-sponsor .ad{
padding:8px 0;}
#ygrp-sponsor .ad #hd1{
font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;}
#ygrp-sponsor .ad a{
text-decoration:none;}
#ygrp-sponsor .ad a:hover{
text-decoration:underline;}
#ygrp-sponsor .ad p{
margin:0;}
o {font-size:0;}
.MsoNormal {
margin:0 0 0 0;}
#ygrp-text tt{
font-size:120%;}
blockquote{margin:0 0 0 4px;}
.replbq {margin:4;}
-->





Reply via email to