I have an AdvancedDataGrid with a HierarchicalCollectionView as its dataProvider. When I view the grid with the dataset I’m working with, and click the header of the column I wish to sort on, everything works perfectly. It sorts it hierarchically exactly how I would expect it to.
What I want to do now is have the grid already be sorted when it is shown to the user. Is there a way to do this programatically? I can’t for the life of me figure out how to do this, and clearly it’s possible since the AdvancedDataGrid has this built in.
Edit – BTW, I’ve tried this:
var myData:HierarchicalCollectionView = new HierarchicalCollectionView(theDataSource);
// Works fine using only the line above and clicking the header to sort.
// This is the part that I tried adding:
var sort:Sort = new Sort();
sort.fields = [new SortField("startDate")];
myData.sort = sort;
myData.refresh();
This appears to do something as far as sorting goes, but it doesn’t sort it in the same way as clicking the column header. “startDate” is a property of an object in theDataSource by the way.
Looks like you want to sort dates.
Sortcan’t do that out of the box. You have to use acompareFunction.If your objects are of type
Dateit’s quite easy:In case your column contains dates as strings you’ll have to parse them first (code example from http://blog.flexexamples.com/2007/08/12/sorting-date-columns-in-a-datagrid/):
Then just use the
sortFieldlike you did in your example. That should work fine.