在flex中对DatagridColumn进行排序

发布于 2024-12-12 09:15:52 字数 497 浏览 0 评论 0原文

我在 Flex 中有一个 DatagridColumn 有两个名称,TYPE 和 NAME

现在,当我对 datagridcolumn TYPE 进行排序时,它使用 sortcomparefunction 对类型进行排序 并给出包含元素分组和排序顺序的结果。 前任。如果我对类型进行排序,我会按分组顺序获取 pdf、doc、ppt 中的元素, 但它们内部未排序,例如:对于 pdf 部分,我有以下元素: 类型名称 pdf A1.pdf pdf X2.pdf pdf B1.pdf

这里的文件类型已排序,但对于特定文件类型,元素未排序,请注意 B1 出现在 X2 之后,应该排序

有没有办法在对第一个数据网格列进行排序后对第二个数据网格列进行排序文件类型扩展名?

我使用 sortcomparefunction 根据 type 对元素进行排序,效果很好。 签名是:

private function sortTheTypeColumn(itemA:Object, itemB:Object):int

I have a DatagridColumn in flex
with two names, TYPE and NAME

Now, when I am sorting a datagridcolumn, TYPE, it sorts the type using sortcomparefunction
and gives the result which contains grouped and sorted order of elements.
ex. if I sort for type I get elements in pdf, doc,ppt in grouped order,
but they are internally not sorted, ex: for the pdf part, I have elements such as:
TYPE NAME
pdf A1.pdf
pdf X2.pdf
pdf B1.pdf

here the filetypes are sorted , but for a particular filetype, the elements are not , please notice that B1 occurs after X2, which should be sorted

Is there a way I can sort the second datagridcolumn after sorting the first one according to filetype extensions?

I am using sortcomparefunction for sorting the elements according to type , which works fine.
the signature is:

private function sortTheTypeColumn(itemA:Object, itemB:Object):int

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

戈亓 2024-12-19 09:15:52

也许是这样的:

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

Maybe something like:

    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;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文