2012-08-23 39 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