Not sure if this is a bug, kind of looks like it, but you can prevent
this by doing this:
<mx:DataGrid id="dg" dataProvider="{array}"
itemClick="dg.selectedItem = array[dg.selectedIndex]; ck(event)">
--- In [email protected], "shafram" <[EMAIL PROTECTED]> wrote:
>
> Hello I am encountering a strange problem when I try to select an
item
> after an initial sort order has been provided.
>
> In this example, I have 5 items with all the same count. My initial
> sorting is on the count field.
> Once the initial sort has been set, I programmatically select the
4th
> item in my array which is Letter "D". If I then try to click on
Letter
> "A" which is right above "D", The alert box will display "D"
not "A" in
> Flex 3.
>
> In flex 2 the event.target.selectedItem is null and an exception is
> thrown.
>
> Here is the source code. Am I doing something wrong or is this a
bug in
> flex?
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
> layout="absolute" creationComplete="cc()">
>
>
> <mx:Script>
> <![CDATA[
> import mx.controls.Alert;
> import mx.events.ListEvent;
> import mx.collections.SortField;
> import mx.collections.Sort;
> import mx.collections.ArrayCollection;
>
> [Bindable]
> private var array : ArrayCollection ;
>
>
> private function cc() : void{
>
> array = new ArrayCollection([
> {"count" : 1207662300, "wp" : "A"},
> {"count" : 1207662300, "wp" : "B"},
> {"count" : 1207662300, "wp" : "C"},
> {"count" : 1207662300, "wp" : "D"},
> {"count" : 1207662300, "wp" : "E"}
>
> ]);
>
> var sorting : Sort = new Sort();
> var sortByCount : SortField = new
> SortField("count",false,true,true);
> sorting.fields = [sortByCount];
> this.array.sort = sorting;
> this.array.refresh();
>
> dg.selectedItem = array[3];
>
>
> }
>
> private function ck(event : ListEvent) : void {
>
> Alert.show(event.target.selectedItem.wp);
>
> }
>
> ]]>
> </mx:Script>
>
>
> <mx:DataGrid id="dg" dataProvider="{array}" itemClick="ck
(event)">
> <mx:columns>
> <mx:DataGridColumn headerText="Count"
dataField="count"/>
> <mx:DataGridColumn headerText="Letter" dataField="wp"/>
> </mx:columns>
> </mx:DataGrid>
>
>
> </mx:Application>
>