У меня есть объект, который выглядит так:
[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, а затем использую это как dataProvider для 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 для установки dataProvider:
override public function set data(value:Object):void
{
// If using the array data source, use this instead:
trades_dg.dataProvider = value;
}
Проблема в том, что метод renderProvider вызывается для каждой записи в dataProvider ADG, частью которой он является. Это равносильно новому DataGrid для каждой сделки в groupedTrades.
Как мне решить эту проблему? Я в замешательстве.
Спасибо за полезные советы и с Днем Благодарения!
ОБНОВЛЕНИЕ: я только что нашел какой-то жестко заданный массив из блога, который делает то, что я хочу; DataGrid как renderProvider для AdvancedDataGrid.
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}
]
]}
]
]}
Это из этого блога: http://techrays.wordpress.com/2008/04/07/advanced-datagrid-as-an-item-renderer-within-an-advanced-datagrid/#comment-1511
Когда я отлаживаю свою коллекцию (напоминает коллекцию массивов, которую я использую), когда она возвращается с сервера, я вижу что-то вроде этого:
вызывает [0] - объект RecallRecord
- опора
- опора
- groupedTrades - ArrayCollection, которую я хочу использовать в качестве DP для renderProvider
groupedTrades [0] - Общий объект
groupedTrades [1] - Общий объект
Я не вижу разницы между жестко закодированной версией из блога, которая работает, и данными, которые я использую из своего сервиса. Что мне не хватает?
спасибо!