データの完全性の点では、ArrayCollectionとしての子を持つオブジェクトを持つことは問題ないと思います。だから、私のAdvancedDataGrid renderProviderが代わりに各子ノードをレンダリングするのはなぜですか?私はそれを得ていない。 (私のrenderProviderはDataGridです)。これにより、新しい項目ごとに新しいDataGridが作成されます。私のデータ構造に何が問題なのですか?
データ構造を書き直す必要はありません。
は、ここでは、コードです:
recalls.addItem(
new ObjectProxy(
{
selected:false,
id:1001,
cpty:'MERRILLINTL',
ticker:'PG:IT',
secId:'7743621',
origQty:8150,
currQty:8150,
rebate:-5.25,
div:100,
dueDate:'7/1/2011',
status:'New',
comments:'',
children:new ArrayCollection([
{
sid:96548714,
type:'BVRI',
secType:'COMMON',
ticker:'PG:IT',
cpty:'MERRILLINTL',
cusip:'T8380H120',
sedol:'7743621',
rate:-5.25,
qty:20000,
recallQty:20000
},
{
sid:23544165,
type:'BVRI',
secType:'COMMON',
ticker:'PG:IT',
cpty:'MERRILLINTL',
cusip:'T8380H120',
sedol:'7743621',
rate:-5.25,
qty:5000,
recallQty:5000
}
]),
trades:new ArrayCollection([
{
sid:12211214,
type:'BVRI',
secType:'COMMON',
ticker:'PG:IT',
cpty:'MERRILLINTL',
cusip:'T8380H120',
sedol:'7743621',
rate:-5.25,
qty:1700,
recallQty:1700
},
{
sid:32112256,
type:'BVRI',
secType:'COMMON',
ticker:'PG:IT',
cpty:'MERRILLINTL',
cusip:'T8380H120',
sedol:'7743621',
rate:-5.25,
qty:6450,
recallQty:6450
}
])
}
)
);
recalls.addItem(
new ObjectProxy(
{
selected:false,
id:1002,
cpty:'GSAL',
ticker:'TH:CA',
secId:'82934H101',
origQty:5400,
currQty:5400,
rebate:-2,
div:100,
dueDate:'8/9/2011',
status:'New',
comments:'',
children:new ArrayCollection([
{
sid:32555688,
type:'BVRI',
secType:'COMMON',
ticker:'TH:CA',
cpty:'GSAL',
cusip:'88338H100',
sedol:2889906,
rate:-2,
qty:7500,
recallQty:7500
},
{
sid:65487745,
type:'BVRI',
secType:'COMMON',
ticker:'TH:CA',
cpty:'GSAL',
cusip:'88338H100',
sedol:2889906,
rate:-2,
qty:3500,
recallQty:3500
}
]),
trades:new ArrayCollection([
{
sid:14445784,
type:'BVRI',
secType:'COMMON',
ticker:'TH:CA',
cpty:'GSAL',
cusip:'88338H100',
sedol:2889906,
rate:-2,
qty:3200,
recallQty:3200
},
{
sid:96552544,
type:'BVRI',
secType:'COMMON',
ticker:'TH:CA',
cpty:'GSAL',
cusip:'88338H100',
sedol:2889906,
rate:-2,
qty:2200,
recallQty:2200
}
])
}
)
);
上記のArrayCollectionが私たAdvancedDataGridのためのdataProviderです。ここにADGのDPがあります。ここで
<mx:dataProvider>
<mx:HierarchicalData
source="{recalls}"/>
</mx:dataProvider>
このADG用renderProviderのコードです:このrenderProviderインサイド
<mx:rendererProviders>
<mx:AdvancedDataGridRendererProvider
depth="2"
columnIndex="1"
renderer="com.controls.GroupedTradesGrid"
columnSpan="0"/>
</mx:rendererProviders>
、私はDPを設定するには、このコードを使用します。
override public function set data(value:Object):void
{
// If using the array data source, use this instead:
dataProvider = value;
// adjust rowCount
this.rowCount = dataProvider.length + 1;
}
基本的には、新しいDataGridがあります'children'コレクション内の各要素に対して作成されます。作成される1つのDataGridと、それを設定する 'Children'コレクションの代わりに作成されます。何故ですか?
ありがとうございました!