如何将String转换为Flex中对象的属性名称

时间:2010-05-20 07:21:04

标签: flex actionscript-3 datagrid

我需要获取单击项目的值和列的名称。

   for each(item in colunas) {

         var itemok:String = item.dataField;
         Alert.show(''+datagridlist.selectedItem.itemok); // show value of column

    }

但这样它会返回'undefined'。

但是如果我把名字放在功能中,我可以得到正确的数据,例如:

Alert.show(''+datagridlist.selectedItem.create); // create is a column name in mysql

但必须动态创建此变量,例如:

var itemok:String = item.dataField;
Alert.show(''+datagridlist.selectedItem.itemok); // show value of column

有人可以帮助我吗?我准时到了,我无法将字符串转换为列名。

我现在感谢你们

1 个答案:

答案 0 :(得分:2)

for each(item in colunas) 
{
    var itemok:String = item.dataField;
    Alert.show(''+datagridlist.selectedItem[itemok]);
}

访问属性/字段的点语法仅适用于属性名称。当属性名称存储在字符串中时,请使用方括号。

var t:String = "value";
//The following three lines are the same and will work
trace(something.value);
trace(something["value"]);
trace(something[t]);

//but this one won't
trace(something.t);