2009-01-22 43 views
1

我有一個textInput字段有自動完成,我從web服務填充它的dataprovider。柔性編輯ResultEvent結果

我給你的數據提供程序與Web服務調用

ac.dataProvider = e.result; 

但是我現在要修改的每個字段從的ResultEvent返回的結果,這樣我就可以多增加一些inforamtion,我試着做一些像這樣的事情;

var results:ArrayCollection = new ArrayCollection(new Array(e.result)); 
var newResultsArray:ArrayCollection; 
var array:Array = new Array; 
for(var i:int = 0 ; i < results.length; i++) 
{ 
    array[i] = results.getItemAt(i) + "extraInformation";  
} 
newResultsArray = new ArrayCollection(array); 
acu.dataProvider = newResultsArray; 

然而,這只是在一個領域的所有結果apear。關於如何將編輯後的數據以與result.event返回的格式相同的格式分配給我的數據提供者的任何建議?

問題似乎是包含該行

results.getItemAt(i) + "extraInformation"; 

被回電話的全部內容到一個row.Is有什麼辦法來打破這個,所以我可以從獲得的ResultEvent每個人行?

回答

1

它將全部取決於e.result是什麼。我懷疑它是某種object/xml,因此當你將它製作成一個數組然後進入一個arrayCollection時,它只是在arrayCollection中填充元素0。

我認爲你需要做的是迭代通過任何e.result並將其每個元素添加到arrayCollection中。

因此,例如,如果e.result是那麼XML嘗試以下

var xmlBack : XML = XML(e.result); 
var xmllist : XMLList = new XMLList(); 
xmllist = xmlBack.nodeYourLookFor; 
var results = new ArrayCollection(); 
for each(var xml : XML in xmllist){ 
    results.addItem(xml.toString)); 
} 

yourAutoComplete.dataProvider = results; 

正如我所說的這一切都取決於e.result是什麼。

0

它實際上是一個對象我回來,

當我調試,並期待在我的web服務調用它的一個ArrayCollection的內容。 即時通訊新的Flex,所以這個基本的東西仍然造成我的問題!:)

+0

字符串。所以在上面的xmlBack.string中,只需確保其有效的XML(在將結果發送回容器節點時將其包含在容器節點中) – kenneth 2009-01-22 11:28:23

0

它通過以下排序:

var lengthOfResult:int = e.result.length; 
var arrayCollResults:ArrayCollection = new ArrayCollection(); 
var resultArray:Array = new Array(e.result); 
    for(var i:int = 0 ; i < lengthOfResult; i++){ 
    arrayCollResults.addItem(e.result[i] + additionalInfo); 
} 
ac.dataProvider = arrayCollResults; 
0

從你的問題,這聽起來像你想離開的數據(及其類型)不變,你應該能夠在您的事件處理程序中,而無需創建新的集合,鑄造等,但肯尼思是正確 - 如果不知道結果的類型和結構,很難具體說明。

你編來看,張貼我回答,你應該已經能夠做到這一點,因爲它看起來像結果的數組:

for (var i:int = 0; i < e.result.length; i++) 
{ 
    e.result[i] += newInformation; 
} 

var ac:ArrayCollection = new ArrayCollection(e.result); 

...改變結果數據直接,然後從中創建一個新的ArrayCollection。然而,你想出了什麼和這個沒有太大的區別 - 只是想說明如何在轉換或創建新對象之前直接修改結果數據。