我有一个对象,看起来像这样:如何使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