Actionscript 3 具有特殊功能的as3 datagrid列排序

Actionscript 3 具有特殊功能的as3 datagrid列排序,actionscript-3,sorting,datagrid,Actionscript 3,Sorting,Datagrid,Im在AS3 air项目中使用datagrid组件。我通过php从sql中获取数据,并将其包含到datagrid中。我的问题是我想改变排序方法。例如,使用数组时,可以使用特殊函数对数组进行排序例如;arrayName.sort(函数名) 如何在特定datagrid列中使用此func: function orderLastName(a, b):int { var lastName:RegExp = /\b\S+$/; var name1 = a.match(lastName)

Im在AS3 air项目中使用datagrid组件。我通过php从sql中获取数据,并将其包含到datagrid中。我的问题是我想改变排序方法。例如,使用数组时,可以使用特殊函数对数组进行排序例如;arrayName.sort(函数名)

如何在特定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; 
    } 
} 
函数orderastname(a,b):int
{ 
var lastName:RegExp=/\b\S+$/;
var name1=a.match(lastName);
var name2=b.match(lastName);
如果(名称1<名称2)
{ 
返回-1;
} 
否则如果(名称1>名称2)
{ 
返回1;
} 
其他的
{ 
返回0;
} 
} 

简单,你已经在问题中给出了答案。只要这样做:

var dataArray:Array = dataGrid.dataProvider.toArray();

dataArray.sort(myfunc);

dataGrid.dataProvider = new DataProvider(dataArray);
另外,如果您只想对特定列执行此操作,请将该列的数据从dataArray复制到新数组并执行排序,将数据设置回dataArray并重置数据提供程序。注意:您可能还需要使阶段无效,以便强制重新绘制列表。只要做:

stage.invalidate();

我花了很长时间才找到一个有效的例子。我找不到任何有用的例子。这就是我要找的。感谢阿森松岛