我在Flex Mobile中创建了一个PHP服务,并使用List绑定了结果。我想根据对数据字段的一些计算对服务中的记录进行排序。那么,是否可以从PHP服务对结果集执行操作?
详细问题:
我已经通过Flash Builder 4.6中的内置工具创建了php服务。我也在我的视图中使用List绑定了服务。 (再次使用GUI控件)。现在,我想根据与当前位置的距离和服务返回的行的坐标重新排列列表中的项目。所以我想的方法是从服务中获取内容。提取lat,lon并计算距离。然后再次更新列表。
我在一个函数中尝试了以下行:
getAllplacesResult.lastResult[1].lon // lon is a column in the table.
但它返回一个空白。他们是一个更理智或更简单的方法吗?
答案 0 :(得分:1)
更好的方法是在Arraycollection上分配它并从那里操作数据。
<mx:ArrayCollection id="myAC" source="{ArrayUtil.toArray(myRO.getAllplacesResult.lastResult)}" />
确保将myAC绑定到列表。
按照您想要的方式对其进行排序:
var collection:ArrayCollection = new ArrayCollection();
var s:Sort = new Sort();
s.fields = [new SortField("lat"), new SortField("lon")];
s.compareFunction = myCompareFunction;
collection.sort = s;
collection.refresh();
private function myCompareFunction(a:Object, b:Object, fields:Array = null):int {
...
}
此外,AS3是基于0的索引。 1实际上会给你第二行(或抛出范围异常)