我有一個對象,看起來像這樣:如何使AdvancedDataGridRenderProviderer呈現ArrayCollection?
[Bindable]
public class MyRecord implements ValueObject
{
public var recall_id:int;
public var recall_type:String;
public var selected:Boolean = false;
public var qty:Number;
public var curr_qty:Number;
public var due_date:String;
public var status:String;
public var comments:String;
public var groupedTrades:ArrayCollection = new ArrayCollection();
}
我的東西一幫那些在ArrayCollection,然後我用這個作爲數據提供程序爲AdvancedDataGrid:
<mx:dataProvider>
<mx:HierarchicalData
source="{model.recalls}"
childrenField="groupedTrades"/>
</mx:dataProvider>
我有一個AdvancedDataGridRenderProvider我想要顯示我的'分組貿易':
<mx:rendererProviders>
<mx:AdvancedDataGridRendererProvider
depth="2"
columnIndex="1"
renderer="com.controls.GroupedTradesGrid"
columnSpan="0"/>
</mx:rendererProviders>
在這個renderProvider中,我重寫set data函數來設置t他的dataProvider:
override public function set data(value:Object):void
{
// If using the array data source, use this instead:
trades_dg.dataProvider = value;
}
的問題是,我renderProvider的方法被調用在ADG的dataProvider每個記錄它的一部分。這相當於分組交易中每筆交易的全新DataGrid。
我該如何解決這個問題?我很困惑。
感謝您的任何有用的提示,感恩節快樂!
更新:我只是從一個博客,我正在做什麼,我想要找到一些硬編碼數組;一個DataGrid作爲AdvancedDataGrid的renderProvider。
private var masterData:Array = [
{ OrderId: 10248, CustomerId:"WILMK", EmployeeId:5, OrderDate:"1-Feb-2007",
children:[
[
{ProductId:11, ProductName:"Quesbo Cabrales", UnitPrice:14, Quantity:12, Discount:0, Price:168},
{ProductId:42, ProductName:"Singaporean Hokkien Fried Mee", UnitPrice:9.8, Quantity:10, Discount:0, Price:98},
{ProductId:42, ProductName:"Mozzarella di Giovanni", UnitPrice:34.8, Quantity:5, Discount:0, Price:174}
]
]}
]
]}
當調試我的收藏(回憶是我使用的ArrayCollection),因爲它是從服務器返回我看到這樣的事情:
召回[0] - RecallRecord對象 - 丙 - 丙 - groupedTrades - ArrayCollection的,我想作爲DP用於renderProvider groupedTrades [0] - 通用對象 groupedTrades [1] - 通用對象
我無法看到硬編碼版本與博客的作品和我使用的服務之間的差異。我錯過了什麼?
謝謝!
它只是似乎很奇怪,如果我硬編碼我的分層數據一切正常就好了,但是當我切換到使用數組對象的集合它根本不起作用。有什麼不同?我寫'MyRecord'對象的方式是否沒有正確顯示分層數據結構? – fumeng
我是否需要創建自定義數據描述符? – fumeng