我试图弄清楚如何基于这样的XML对象来管理Datagrid:
<matrix rows="5" columns="5">
<column>
<row>0.5</row>
<row>0.21</row>
</column>
<column>
<row>0.6</row>
<row>0.9</row>
</column>
<column>
<row>0.5</row>
<row>0.5</row>
</column>
<column>
<row>0.8</row>
<row>0.4</row>
</column>
</matrix>
我需要根据不同的XML对象填充Datagrid列名,并使用上面的XML填充每个列的行。我目前能够创建Datagrid并填充其列标题,但我不确定如何为每列添加行。将更新上述XML,并添加和删除新的行和列元素。当然,这将绑定到Datagrid以显示更新。
答案 0 :(得分:1)
数据网格的行将是动态的。它将根据数据提供程序中的项目数填充。但要使列动态化,您必须使用AS。
Datagrid有一个名为“columns”的属性。这包含该数据网格的DataGridColumn对象。您可以检查数据提供者,并将DatagridColumns添加或删除到“columns”数组。
var cols:Array = [];
for(var i:int = 0;i<dataProvider.length;i++)
{
var DGCol:DataGridColumn = new DataGridColumn();
DGCol.dataField = "data1";
cols.push(DGCol);
}
myDg.columns = cols;
答案 1 :(得分:1)
行数据是否是列的子项一定是真的吗?如果是这种情况,您将需要首先转换数据。 Flex中的DataGrid和HTML中的Table基于数据库的约定,其中行作为单独的记录而不是列。
如果提供数据的人/任何人拒绝遵守此规定,您最好操纵数据以适应视图控制而不是反之亦然,这就是您现在正在做的事情。