0

起初,我很高兴忽略了我的语言技能。我正在使用 sdk 4.6.0 (flex+php) 在 flex 中创建一个在线应用程序

我正在尝试做的是从另一个更改 1 个数据网格列数据(或者如果它更简单,则相同)。

我的数据网格如下所示:

id | name | type | type1 | type2 | type3 | ... | type52

此网格中的数据提供者是一个 db 表,而不是结果作为新的 arrayCollection。我想在类型列中使用所需的 typeX 列数据创建这个新的 arrayCollection。每种类型都有相同数量的行。typeX 的选择是通过按下不在数据网格中的按钮来进行的。列可见功能不是解决方案,因为在我正在使用的应用程序的其他部分dataFiled="type" as text{function}等。

让我知道是否需要一些额外的信息。

4

1 回答 1

0

您可以使用 ObjectProxy 类。例如:

package {

import flash.utils.flash_proxy;

import mx.utils.ObjectProxy;

public class Wrapper extends ObjectProxy {

    public function Wrapper(item:Object = null) {
        super(item);
    }

    override flash_proxy function getProperty(name:*):* {
        if (name == "type1")
            return "someValue";

        if (name == "type2")
            return "otherValue";

        return super.flash_proxy::getProperty(name);
    }
}
}

当您创建 ArrayCollection 时,请使用此功能:

public function wrapCollection(arrayCollection:IList):IList {
    var list:Array = [];
    for each (var item:Object in arrayCollection) {
        list.push(new Wrapper(item));
    }
    return new ArrayCollection(list);
}

现在您可以使用 dataFieldstype1type2

于 2012-09-15T19:26:02.373 回答