Does this work?
private function removeSelected(): void {
while (dgTest.selectedIndices.length > 0){
acTest.removeItemAt(dgTest.selectedIndices[0]);
}
}
--- In [email protected], "Jim Robson" <[EMAIL PROTECTED]>
wrote:
>
> OK, below is the solution that I came up with. If anyone sees a
simpler /
> better way, please let me know.
>
> Adobe engineers: I am guessing that removing items from a data
grid is a
> common operation, in which case it seems like there should be a
very simple
> and straightforward way of doing so. What am I missing?
>
> private function sortOnInt(strA:String, strB:String):int {
>
> var a:int = int(strA);
>
> var b:int = int(strB);
>
> var r:int = 0;
>
> if(a > b) {
>
> r = -1;
>
> } else if(a < b) {
>
> r = 1;
>
> } else if(a == b) {
>
> r = 0;
>
> }
>
> return r;
>
> }
>
> private function removeSelected(): void {
>
> var arr:Array = dgTest.selectedIndices;
>
> arr.sort(sortOnInt);
>
> for(var i:int = 0; i < arr.length; i++){
>
> acTest.removeItemAt(arr[i]);
>
> }
>
> }
>
>
>
> _____
>
> From: [email protected]
[mailto:[EMAIL PROTECTED] On
> Behalf Of Jim Robson
> Sent: Thursday, June 08, 2006 11:21 AM
> To: [email protected]
> Subject: RE: [flexcoders] Re: Remove selected items from an
ArrayCollection
> / DataGrid?
>
>
>
> Yes, I suspect you're on the right track (except for the fact that
DataGrid
> indices are Strings see my other post on that subject).
>
> The other issue I've encountered is that the array needs to be
sorted from
> greatest to least. That's what I'm working on now. Of course, this
is not
> straightforward either, because the DataGrid indices are strings!
>
>
>
> Thanks for the help!!!
>
>
>
> _____
>
> From: [email protected]
[mailto:[EMAIL PROTECTED] On
> Behalf Of bhaq1972
> Sent: Thursday, June 08, 2006 11:14 AM
> To: [email protected]
> Subject: [flexcoders] Re: Remove selected items from an
ArrayCollection /
> DataGrid?
>
>
>
> i reckon your the selectedIndicis is changing and therefore cannot
> be relied upon within your for loop.
>
> try this. (as a starting point)
>
> private function removeSelected():void
> {
> var array1:Array = new Array();
> for(var j:int;j < dgTest.selectedIndices.length; j++)
> {
> var num1:int = dgTest.selectedIndices[j];
>
> array1.push(num1);
> }
>
> for(var i:int = 0; i < array1.length; i++)
> {
> acTest.removeItemAt(array1[i]);
> }
> }
>
> --- In [EMAIL PROTECTED] <mailto:flexcoders%40yahoogroups.com>
ups.com,
> "Jim Robson" <jim.robson@>
> wrote:
> >
> > Correction: the app is actually removing ½ of the selected items
> with each
> > click of the button. The new version of the code below has
> additional items
> > in the data model in order to make this easier to test.
> >
> >
> >
> > Any ideas? Am I just missing something obvious?
> >
> >
> >
> > <?xml version="1.0" encoding="utf-8"?>
> >
> > <mx:Application xmlns:mx="http://www.adobe.
> <http://www.adobe.com/2006/mxml> com/2006/mxml" >
> >
> >
> >
> > <mx:Model id="mTest">
> >
> > <services>
> >
> > <service type="Plumbing"
> cost="$100"
> > description="Fix leaky drain" />
> >
> > <service type="Electrical"
> cost="$200"
> > description="Wire stairwell lighting"/>
> >
> > <service type="Roofing"
> cost="$300"
> > description="Install vent pipe boot"/>
> >
> > <service type="Carpentry"
> cost="$400"
> > description="Replace entry door"/>
> >
> > <service type="Plumbing"
> cost="$500"
> > description="Install bath tub"/>
> >
> > <service type="Electrical"
> cost="$600"
> > description="Wire home office"/>
> >
> > <service type="Roofing"
> cost="$700"
> > description="Install ice & water shield"/>
> >
> > <service type="Carpentry"
> cost="$800"
> > description="Install sliding patio door"/>
> >
> > <service type="Plumbing"
> cost="$900"
> > description="Install hot tub"/>
> >
> > <service type="Electrical"
> cost="$1000"
> > description="Install service box"/>
> >
> > <service type="Roofing"
> cost="$1100"
> > description="Shingle one-car garage"/>
> >
> > <service type="Carpentry"
> cost="%1200"
> > description="Build small deck"/>
> >
> > </services>
> >
> > </mx:Model>
> >
> > <mx:ArrayCollection id="acTest"
> > source="{mTest.services.service}" />
> >
> >
> >
> > <mx:Script>
> >
> > <![CDATA[
> >
> > import
> mx.collections.ArrayCollection;
> >
> >
> >
> > private function removeSelected():void{
> >
> > for(var i:int = 0; i <
> > dgTest.selectedIndices.length; i++){
> >
> >
> > acTest.removeItemAt(dgTest.selectedIndices[i]);
> >
> > }
> >
> > }
> >
> >
> >
> > ]]>
> >
> > </mx:Script>
> >
> >
> >
> > <mx:VBox width="400" height="600">
> >
> >
> >
> > <mx:DataGrid id="dgTest"
> dataProvider="{acTest}"
> > width="400" height="500" allowMultipleSelection="true">
> >
> > <mx:columns>
> >
> > <mx:DataGridColumn
> > headerText="Type" dataField="type" />
> >
> > <mx:DataGridColumn
> > headerText="Service" dataField="description" />
> >
> > <mx:DataGridColumn
> > headerText="Cost" dataField="cost" />
> >
> > </mx:columns>
> >
> > </mx:DataGrid>
> >
> >
> >
> > <mx:Button id="btnTest"
> click="removeSelected();"
> > label="Remove Selected" />
> >
> >
> >
> > </mx:VBox>
> >
> >
> >
> >
> >
> > </mx:Application>
> >
>
------------------------ Yahoo! Groups Sponsor --------------------~-->
Get to your groups with one click. Know instantly when new email arrives
http://us.click.yahoo.com/.7bhrC/MGxNAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~->
--
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
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/flexcoders/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/