Flex中的两个排序字段是否存在XMLListCollection的优先级?

时间:2012-11-01 13:14:53

标签: actionscript-3 flex flex4

当您为排序(ISort)提供两个字段时,排序算法是否有优先权?如果您按日期和时间排序,那么排序只会在日期相等时排序时间吗?

以下示例代码:

private function sortXMLListCollection(listCollection:XMLListCollection, fields:Array):XMLListCollection
{
    var descendingSort:Sort = new Sort();
    descendingSort.fields = new Array();

    for each( var field:String in fields)
    {
        descendingSort.fields.push(new SortField(field, true));
    }

    listCollection.sort = descendingSort;
    listCollection.refresh();

    return listCollection;
}

Function Call: sortXMLListCollection(patchCollection, ["date", "time"]);

Sample XML:
<patch>
  <time>08:44:46</time>
  <date>10/10/12</date>
</patch>
<patch>
  <time>08:51:09</time>
  <date>10/10/12</date>
</patch>
<patch>
  <time>08:46:04</time>
  <date>10/11/12</date>
</patch>

不知何故,上述功能无法正常工作。我希望它首先比较日期,只对日期相等的时间进行排序。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

你的问题不是你的代码......这是你的xml。

如果添加根节点,您的代码将按预期工作:

var xml:XML = 
    <root>
      <patch>
        <time>08:44:46</time>
        <date>10/10/12</date>
      </patch>
      <patch>
        <time>08:51:09</time>
        <date>10/10/12</date>
      </patch>
      <patch>
        <time>08:46:04</time>
        <date>10/11/12</date>
      </patch>
    </root>

var patchCollection:XMLListCollection = new XMLListCollection(xml.patch);

sortXMLListCollection(patchCollection, ["date", "time"]);