Ca devrait répondre à ton problème :
CODE
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
import flash.utils.setTimeout;
private var ar : Array = new Array("test 1",
"test 2",
"test 3",
"test 4",
"test 5",
"test 6",
"test 7",
"test 8",
"test 9",
"test 10",
"test 11",
"test 12",
"test 13"
);
private function init():void
{
dg.addEventListener(FlexEvent.UPDATE_COMPLETE,test);
}
private function test(e:FlexEvent):void
{
dg.verticalScrollPosition=dg.dataProvider.length-1;
}
private function affect():void
{
dg.dataProvider=ar;
}
]]>
</mx:Script>
<mx:DataGrid id="dg">
<mx:columns>
<mx:DataGridColumn headerText="Column 1" dataField="col1"/>
<mx:DataGridColumn headerText="Column 2" dataField="col2"/>
<mx:DataGridColumn headerText="Column 3" dataField="col3"/>
</mx:columns>
</mx:DataGrid>
<mx:Button label="Button" click="affect()"/>
</mx:Application>
L'évènement FlexEvent.UPDATE_COMPLETE est appelé une fois le dataprovider mis à jour. Il suffit alors de place la scroll bar par rapport à la longueur du dataprovider.