我在AS3 air项目中使用datagrid组件。我通过php从sql获取数据并包含到datagrid中。我的问题是我想改变排序方法。例如,当您使用Arrays时,可以使用特殊函数对数组进行排序。例如; arrayName.sort(functionName)
如何在特定的datagrid列中使用此func:
function orderLastName(a, b):int
{
var lastName:RegExp = /\b\S+$/;
var name1 = a.match(lastName);
var name2 = b.match(lastName);
if (name1 < name2)
{
return -1;
}
else if (name1 > name2)
{
return 1;
}
else
{
return 0;
}
}
答案 0 :(得分:0)
很简单,你已经在你的问题中说了答案。就这样做:
var dataArray:Array = dataGrid.dataProvider.toArray();
dataArray.sort(myfunc);
dataGrid.dataProvider = new DataProvider(dataArray);
此外,如果您只想对特定列执行此操作,请将该列的数据从dataArray复制到新数组并执行排序,将数据设置回dataArray并重置数据提供程序。请注意,您还可能需要使舞台无效以强制重新绘制列表。只是做:
stage.invalidate();