我需要帮助!基本上我有两个mx DataGrids,一个从xml文件中提取数据,另一个是空白的,因为我想添加它。我正在尝试从一个网格中选择多个行,然后通过单击按钮将它们添加到另一个网格中。
目前我已经成功地选择,复制和粘贴了一行,但没有更多。 allowMultipleSelection选项设置为true,但是当我选择多行并尝试将它们粘贴到空dataGrid中时,它一次只会粘贴一行。
这是我用来将所选行添加到空数据网格的函数。
public function handleAddRow(event:MouseEvent):void
{
summaryGrid.dataProvider.addItem({"Category": offersGrid.selectedItem.category,
"Program": offersGrid.selectedItem.program,
"Manufacturer": offersGrid.selectedItem.manufacturer,
"Products": offersGrid.selectedItem.products,
"MinimumOrder": offersGrid.selectedItem.minimumOrder,
"OfferDetail": offersGrid.selectedItem.offerDetail
});
}
提前致谢! --Moe
答案 0 :(得分:0)
使用selectedCells属性而不是selectedItem。这是Object的集合,其中包含所有选定的行。
function handleAddRow(event:MouseEvent):void
{
for each(var row in offersGrid.selectedCells)
summaryGrid.dataProvider.addItem({
"Category": row.category,
"Program": row.program,
"Manufacturer": row.manufacturer,
"Products": row.products,
"MinimumOrder": row.minimumOrder,
"OfferDetail": row.offerDetail
});
}
尝试使用此功能并确保此字段位于网格中。
function handleAddRow(event:MouseEvent):void
{
for each(var row in offersGrid.selectedCells)
summaryGrid.dataProvider.addItem({
category: row.category,
program: row.program,
manufacturer: row.manufacturer,
products: row.products,
minimumOrder: row.minimumOrder,
offerDetail: row.offerDetail
});
}
答案 1 :(得分:0)
实际上,您需要在所有选定项目上调用addItem
。这是我尝试的代码,它工作正常:
public function handleAddRow(event:MouseEvent):void
{
var selectedItems:Array = offersGrid.selectedItems;
if(summaryGrid.dataProvider == null) summaryGrid.dataProvider = new ArrayCollection();
for each(var item:CategoryObject in offersGrid.selectedItems) {
(summaryGrid.dataProvider as ArrayCollection).addItem(item);
}
}
您可能需要根据您的要求进行任何细微更改。如果您遇到任何其他问题,请发表评论。