显示数据网格中两个对象的属性

时间:2009-12-11 05:22:48

标签: flex datagrid

之前我在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,但categoryName在另一个对象(类别)中

  • CAT_ID
  • 类别名称

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

我这样做是为了在将来分类名称需要重命名。我可以重命名类别表中的那个。

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

示例代码非常受欢迎。

1 个答案:

答案 0 :(得分: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 格斯