Actionscript 3 Flex:无法在数组集合中获取值
我有一个数组集合对象“invaraycol”,它保存一些数据。我还有一个数据网格。我已经将dataProvider设置为InvaryCol。当我将数据与数据网格一起使用时,我会正确地显示数据。但当在datagrid以外的任何地方使用相同的InvaryCol时,都会显示null。我写了这段代码Actionscript 3 Flex:无法在数组集合中获取值,actionscript-3,apache-flex,Actionscript 3,Apache Flex,我有一个数组集合对象“invaraycol”,它保存一些数据。我还有一个数据网格。我已经将dataProvider设置为InvaryCol。当我将数据与数据网格一起使用时,我会正确地显示数据。但当在datagrid以外的任何地方使用相同的InvaryCol时,都会显示null。我写了这段代码 protected function titlewindow1_creationCompleteHandler(event:FlexEvent):void { Cgt=new CgtSRObject
protected function titlewindow1_creationCompleteHandler(event:FlexEvent):void
{
Cgt=new CgtSRObject();
var autoobj:CSAutoNumberType=new CSAutoNumberType();
autoobj.addEventListener(ResultEvent.RESULT,getInvNubmer);
autoobj.getInvNo(invoiceType);
trace(robj.salesPerson_Id);
getSalesReturnCgt.token=csInvoicePrint.getCgtData(robj.receive_Id);
getSalesReturnCgt.addEventListener(ResultEvent.RESULT,getInvArrList);
trace(Cgt.sr_no);
datagrid_dataprovider=new ArrayCollection();
datagrid_dataprovider=invArrayCol;
calculateTotal();
}
这两行将数据设置为不变量
getSalesReturnCgt.token=csInvoicePrint.getCgtData(robj.receive_Id);
getSalesReturnCgt.addEventListener(ResultEvent.RESULT,getInvArrList);
但在这里,它将INVARAYCOL的值设为null
datagrid_dataprovider=new ArrayCollection();
datagrid_dataprovider=invArrayCol;
请告诉我一些解决方法。如果数据长度为1,ResultEvent的结果可能会返回ObjectProxy。通过“as”进行施法会导致施法失败。因此,只需检查结果的类型,就可以确定结果是否可以直接使用,或者是否必须在其周围包装一个ArrayCollection
// This happens asynchronously, should have no effect in the function
getSalesReturnCgt.addEventListener(ResultEvent.RESULT,getInvArrList);
此外,
// datagrid_dataprovider=new ArrayCollection(); // This line is obsoloete
datagrid_dataprovider=invArrayCol; // invArrayCol will get its value later
因此,看起来您希望某些代码同步执行,但它始终异步工作。您说变量
invaraycol
为空。但是在您所展示的代码中,这个变量从未被赋值(因此它将为null)。您显示的代码片段不足以诊断问题。另外,为什么要设置数据网格的数据提供程序两次?第一次到新的ArrayCollection,然后第二次到InvaryCol?