2009-12-11 55 views
0

以前,我在Flex Adob​​e论坛上发布了关于此问题的讨论,但仍不明白需要做什么。所以,我会在stackoverflow上再次尝试我的运气。显示数据网格中两个对象的属性

我正在使用数据网格上的Flash Builder 4中的拖放数据绑定功能。但是,我需要显示的数据需要从另一个对象进行查询。

<mx:DataGrid id="dataGrid2" dataProvider="{getMajorDetailsResult.lastResult}"> <mx:columns> <mx:DataGridColumn headerText="Category Name" /> <mx:DataGridColumn headerText="Require Credits" dataField="requireCredits" resizable="false" width="40"/> </mx:columns> </mx:DataGrid>

在该数据网格我与对象MACL具有

  • ID
  • CAT_ID
  • requireCredits

然而结合它,我想显示类别名称在第一列但categoryName在另一个对象(类别)

  • CAT_ID
  • 类别名称

在这种情况下我该怎么办?

我这样做,以便将来如果类别名称需要重命名。我可以重命名类别表中的一个。

有人告诉我使用数据模型。我想我应该尝试将从callresponder检索到的对象转换为我自定义的类对象,然后将此类设置为我的datagrid的dataprovider?这是应该做什么

示例代码是高度赞赏。

回答

2

您可以使用的DataGridColumn在其中您分配决定怎么回事列中显示的功能的的labelFunction属性:

private function labelFunction(item:Object, column:DataGridColumn):String 
{ 
    //search for the categoryName 
    for (var i:int = 0; i < categories.length; i++) 
    { 
     var category:Category = categories[i]; 
     if (category.cat_id == item.cat_id) 
     { 
      return category.categoryName; 
     } 
    } 
    // in case it was not fault return a default value 
    return ""; 
} 

HTH 格斯

+0

这应该做它。非常感谢你Gus :) – Pii 2009-12-11 16:35:04

相关问题