Apache flex flex编辑结果事件结果

Apache flex flex编辑结果事件结果,apache-flex,resultevent,Apache Flex,Resultevent,我有一个文本输入字段,它具有自动完成功能,我从Web服务填充它的数据提供者 我将webservice调用的结果分配给dataprovider ac.dataProvider = e.result; 然而,我现在想编辑从ResultEvent返回的每个字段,以便添加更多信息,我尝试过这样做 var results:ArrayCollection = new ArrayCollection(new Array(e.result)); var newResultsArray:ArrayCollect

我有一个文本输入字段,它具有自动完成功能,我从Web服务填充它的数据提供者

我将webservice调用的结果分配给dataprovider

ac.dataProvider = e.result;
然而,我现在想编辑从ResultEvent返回的每个字段,以便添加更多信息,我尝试过这样做

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; 

正在将调用的完整内容返回到一行中。是否有任何方法将其分解,以便我可以从ResultEvent中获取每一行?

这将取决于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是什么。

这一切都取决于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.结果是什么。

它实际上是我得到的一个对象

当我调试并查看Web服务的内容时,将其称为arrayCollection。
我是Flex新手,所以这个基本的东西仍然在给我带来问题!:)

它实际上是我得到的一个物体

当我调试并查看Web服务的内容时,将其称为arrayCollection。
我是Flex新手,所以这个基本的东西仍然在给我带来问题!:)

通过执行以下操作对其进行排序

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;
var lengthOfResult:int=e.result.length;
var arrayCollResults:ArrayCollection=new ArrayCollection();
var resultArray:Array=新数组(即结果);
对于(变量i:int=0;i
通过执行以下操作对其进行排序

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;
var lengthOfResult:int=e.result.length;
var arrayCollResults:ArrayCollection=new ArrayCollection();
var resultArray:Array=新数组(即结果);
对于(变量i:int=0;i
从您的问题来看,您似乎希望保持数据(及其类型)不变,您应该能够在事件处理程序中保留这些数据,而不创建新的集合、强制转换等。但是kenneth是对的——如果不知道结果的类型和结构,就很难具体说明

根据我回复时发布的您的附录判断,您应该能够做到这一点,因为结果似乎是一个数组:

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

var ac:ArrayCollection = new ArrayCollection(e.result);
for(变量i:int=0;i

。。。直接更改结果数据,然后从中创建新的ArrayCollection。不过,您所提出的与此之间没有什么大的区别——只是想说明如何在强制转换或创建新对象之前直接修改结果数据。

从您的问题来看,您似乎希望保持数据(及其类型)不变,您应该能够在事件处理程序中保留这些数据,不创建新的集合、铸造等。但是kenneth是对的——如果不知道结果的类型和结构,就很难具体说明

根据我回复时发布的您的附录判断,您应该能够做到这一点,因为结果似乎是一个数组:

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

var ac:ArrayCollection = new ArrayCollection(e.result);
for(变量i:int=0;i

。。。直接更改结果数据,然后从中创建新的ArrayCollection。不过,您所提出的与此没有什么大的区别——只是想说明如何在强制转换或创建新对象之前直接修改结果数据。

string。因此,与上面的xmlBack.string一样,只需确保其有效的XML(在将代码片段发送回结果时,将其用容器节点括起来)是如何执行Web服务的。确保已设置.resultFormat=“e4x”;如果返回XML.string。因此,与上面的xmlBack.string一样,只需确保其有效的XML(在将代码片段发送回结果时,将其用容器节点括起来)是如何执行Web服务的。确保已设置.resultFormat=“e4x”;如果您返回XML。