Great, thanks. I have submitted the bug to Adobe. --- In [email protected], "Alex Harui" <[EMAIL PROTECTED]> wrote: > > That's a bug. A simpler reproduction case is this: > > <?xml version="1.0" encoding="utf-8"?> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> > <mx:Script> > <![CDATA[ > private function workaround():void > { > var i:int = list.selectedIndex; > list.selectedIndex = -1; > list.selectedIndex = i; > } > ]]> > </mx:Script> > <mx:List id="list" dataProvider="['a', 'b', 'c', 'd', 'e', 'f', 'g', > 'h', 'i']" allowMultipleSelection="true" > > </mx:List> > <mx:Button label="delete row 'c'" > click="list.dataProvider.removeItemAt(2)" /> > <mx:Text text="Select 'd', hit button, try to shift select 'e'. Should > select both 'd' and 'e'" /> > <mx:Button label="workaround" click="workaround()" /> > </mx:Application> > > and the workaround is to set selectedIndex to -1. Please use the > simpler test case when filing the bug. Thanks. > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of e_baggg > Sent: Thursday, September 27, 2007 4:34 PM > To: [email protected] > Subject: [flexcoders] Cannot multiple select rows after deleting row > from a List > > > > I was able to recreate this issue in a very simple example included > below. If I select a row, delete it (which auto selects the next > row)...if I then Shift-click another row...the highlighted row is not > included in the selected group. Any future shift-clicks from this > point work as expected. has anyone encountered this? I included a > sample Flex 2 mxml app with steps. Thanks in advance for your help: > > <?xml version="1.0" encoding="utf-8"?> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml > <http://www.adobe.com/2006/mxml> " > layout="vertical"> > <mx:Script> > <![CDATA[ > import mx.collections.ArrayCollection; > > [Bindable] > private var dataAll : ArrayCollection = new > ArrayCollection(["aa","bb","cc","dd","ee","ff","gg","hh","ii",]); > > private function deleteRow() : void > { > var selectedIndices : Array = dg.selectedIndices; > var highestIndex : int = getEmailWithHighestIndex(selectedIndices); > trace("highestIndex=" + highestIndex); > trace("pre delete=" + selectedIndices); > highestIndex++; > dg.selectedIndex = highestIndex; > trace("after set=" + dg.selectedIndex); > for each(var k:int in selectedIndices) > { > dataAll.removeItemAt(k); > } > dg.selectedIndex = dg.selectedIndex; > trace("post delete (indices)=" + dg.selectedIndices); > trace("post delete (index)=" + dg.selectedIndex); > } > private function mouseDownHandler() : void > { > trace('mouseDOWN (indices)=' + dg.selectedIndices); > trace('mouseDOWN (index)=' + dg.selectedIndex); > trace('----------'); > } > private function getEmailWithHighestIndex(selectedIndices : Array) : int > { > var highestEmailIndex : int = 0; > for(var g:int=0 ; g < selectedIndices.length; g++) > { > var currEmailIndex : int = int(selectedIndices[g]); > if(currEmailIndex > highestEmailIndex) > { > highestEmailIndex = currEmailIndex; > } > } > return highestEmailIndex; > } > ]]> > </mx:Script> > <mx:HBox width="100%" height="75%"> > <mx:TextArea width="100%" height="100%" htmlText="1.) Select 'cc' > <br>2.) Hold down 'Shift' and select 'dd' (notice how both rows > are selected). > <br>3.) Select 'cc' so it is the only row that is selected is > 'cc'.<br>4.)Click delete ('dd' is now selected)<br>5.) Now > Shift-click 'ee'. This should select both rows but it does not. Why??? > "/> > <mx:VBox width="100%"> > <mx:List id="dg" dataProvider="{dataAll}" width="200" height="179" > allowMultipleSelection="true" mouseDown="{mouseDownHandler()}"/> > <mx:Button label="delete" click="{deleteRow()}"/> > </mx:VBox> > </mx:HBox> > </mx:Application> >

