[英]Flex: Cannot get value in array collection
我有一個數組集合對象“ invArrayCol”,其中包含一些數據。 我也有一個數據網格。 我已經將dataProvider設置為invArrayCol。當我將其與數據網格一起使用時,我可以正確顯示數據。 但是,當在datagrid之外的其他地方使用同一invArrayCol時,其顯示為null。 我寫了這段代碼
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();
}
這2行將數據設置為invArrayCol
getSalesReturnCgt.token=csInvoicePrint.getCgtData(robj.receive_Id);
getSalesReturnCgt.addEventListener(ResultEvent.RESULT,getInvArrList);
但是在這里,它將invArrayCol的值設置為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
因此,您似乎希望某些代碼可以同步執行,但始終可以異步工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.