Проглядел - спасибо, но в самом деле не помогло т.к. думал с помощью этого метода решу следущую проблему. Может кто сталкивался:
Есть DataGrid у с колонками CustomDataGridColumn наследованными от стандартных DataGridColumn ради свойства dataType - тип данных содержащейся в колонках. К DataGrid'у на событие headerRelease прикручен хендлер сортирующий их в зависимости от типа данных - хендлер выглядит так:
Код:
public static function sort(event:DataGridEvent):void {
columnDataField=event.dataField;
var dataGrid:DataGrid=DataGrid(event.target);
var column:CustomDataGridColumn=CustomDataGridColumn(dataGrid.columns[event.columnIndex])
if(column.dataType != DataType.STRING_TYPE)
{
var dataGridDataProvider:DataCollection=DataCollection(dataGrid.dataProvider);
var sortField:SortField=new SortField()
sortField.numeric=(column.dataType == DataType.NUMBER_TYPE)? true : false;
sortField.compareFunction=(column.dataType == DataType.DATE_TYPE)? dateCompareFunction : numberCompareFunction
sortField.caseInsensitive=false;
sortField.name=columnDataField;
sortField.descending=!column.sortDescending;
column.sortDescending=!column.sortDescending;
var sort:Sort=new Sort();
sort.unique=false;
var array:Array=new Array()
array.push(sortField)
sort.fields=array;
dataGridDataProvider.sort=sort;
dataGridDataProvider.refresh();
sortField.compareFunction=null;
event.preventDefault();
}
}
Данные сортируются правильно - проблема в том, что при сортировке по умолчанию если у DataGrid'a есть selectedItem, то он автоматически скроллится на позицию , где виден этот Item. При сортировке таким способом автоматического скролла не происходит, также не помогает и принудительтный вызов
Код:
dataGrid.scrollToIndex(dataGrid.selectedIndex)
Были мысли что сортировка не происходит мгновенно и необходимо дождаться события (к примеру Event.DEACTIVATE у sort'a), но и это ни к чему не привело. Возможно у кого-то есть решение подобной проблемы.