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

时间:2011-07-10 12:54:26

标签: actionscript-3 sorting datagrid

我在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; 
    } 
} 

1 个答案:

答案 0 :(得分:0)

很简单,你已经在你的问题中说了答案。就这样做:

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

dataArray.sort(myfunc);

dataGrid.dataProvider = new DataProvider(dataArray);

此外,如果您只想对特定列执行此操作,请将该列的数据从dataArray复制到新数组并执行排序,将数据设置回dataArray并重置数据提供程序。请注意,您还可能需要使舞台无效以强制重新绘制列表。只是做:

stage.invalidate();