簡體   English   中英

在Flex中排序DatagridColumn

[英]Sort DatagridColumn in flex

我在Flex中有一個DatagridColumn,其中有兩個名稱:TYPE和NAME

現在,當我對數據網格列TYPE進行排序時,它將使用sortcomparefunction對類型進行排序,並給出包含元素分組和排序順序的結果。 例如 如果我對類型進行排序,則會按分組順序在pdf,doc,ppt中獲得元素,但它們在內部未排序,例如:對於pdf部分,我具有諸如以下元素:類型名稱pdf A1.pdf pdf X2.pdf pdf B1 .pdf

在這里,文件類型是已排序的,但是對於特定文件類型,元素不是,請注意B1出現在X2之后,應該對其進行排序

根據文件類型擴展名對第一個datagridcolumn進行排序后,是否可以對第二個datagridcolumn進行排序?

我正在使用sortcomparefunction根據type對元素進行排序,效果很好。 簽名是:

私有函數sortTheTypeColumn(itemA:Object,itemB:Object):int

也許像:

    protected function sortTheTypeColumn(x:Object, y:Object):int
    {
        var xType:String = String(x["TYPE"]).toLocaleLowerCase();
        var yType:String = String(y["TYPE"]).toLocaleLowerCase();

        var result:int = sortInternalCompare(xType, yType);

        if (result == 0)
        {
            var aName:String = String(x["NAME"]).toLocaleLowerCase();
            var bName:String = String(y["NAME"]).toLocaleLowerCase();

            result = sortInternalCompare(aName, bName);
        }

        return result;
    }

    protected function sortInternalCompare(x:String, y:String):int
    {
        if (x == null && y == null)
            return 0;
        if (x == null)
            return 1;
        if (y == null)
            return -1;

        var result:int = x.localeCompare(y);

        if (result < -1)
            result = -1;
        if (result > 1)
            result = 1;

        return result;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM