2012-08-23 28 views
0

我在Flex Mobile中创建了一个PHP服务,并将结果绑定到一个List。我想根据数据字段上的某些计算对服务中的记录进行排序。那么,是否可以对PHP服务的结果集执行操作?Flex中的服务处理数据

详细问题:

我已经通过内置的工具在Flash Builder 4.6创建的PHP服务。在我看来,我也将服务与一个List绑定在一起。 (再次使用GUI控件)。现在我想根据距离当前位置的距离和服务返回的行的坐标重新排列列表中的项目。所以我想的方法是从服务中获取内容。提取lat,lon并计算距离。然后再次更新列表。

我想在一个函数以下行:

getAllplacesResult.lastResult[1].lon // lon is a column in the table. 

但它返回一个空白。他们是一个更健全还是更简单的方法来做到这一点?

+1

是的(根据你提供的信息,我可以说真的没什么) – RIAstar

+0

@RIAstar我已经更新了我的问题。 – krammer

回答

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实际上会给你第二排(或抛出范围例外)

+0

我试过这段代码,并尝试打印myAC的长度。长度为0。 – krammer