2011-11-28 80 views
0

我有一个datagrid,它由一个ArrayList填充。我想要一列被另一个ArrayList填充。我试着做这样的,但只得到前三栏填写,不是最后一个(与不同的ArrayList):数据提供者的数据网格是否有可能具有不同数据提供者的一列?

<s:DataGrid x="10" y="281" width="597" height="204" dataProvider="{arEvents}" 
      requestedRowCount="4"> 
    <s:columns> 
     <s:ArrayList> 
      <s:GridColumn dataField="title" headerText="Column 1" ></s:GridColumn> 
      <s:GridColumn dataField="venue.location.geopoint" headerText="Column 2"></s:GridColumn> 
      <s:GridColumn dataField="startDate" headerText="Column 3"></s:GridColumn> 
      <s:GridColumn dataField="{arArtistsPerEvent}" headerText="Column 3"></s:GridColumn> 
     </s:ArrayList> 
    </s:columns> 
</s:DataGrid> 

回答

1

不,这是不可能的。这将打破datagrid和dataprovider的目的。

一个解决方案是解析第二个列表并将其值放在第一个列表中。

for(var i:int=0; i<arArtistsPerEvent.length; i++) { 
    arEvents.getItemAt(i).artistsPerEvent=arArtistsPerEvent.getItemAt(i); 
} 

,然后让dgColumn像

<s:GridColumn dataField="artistsPerEvent" headerText="Column 3"></s:GridColumn> 
+0

这完美的作品,非常感谢你的简洁明了的答案! – Veltar

+0

当然,你必须确保两个列表具有相同的长度,并且'arEvents.getItemAt(i)'和'arArtistsPerEvent.getItemAt(i)'都不是null –

+0

它们将始终是相同的长度,因为它们来自同一个xml文件。我解决了它有点不同,通过在解析数组中的XMLList时添加它,所以我不必创建第二个数组ArtistsPerEvent – Veltar

相关问题