【问题标题】:Limit Flex Spark DataGrid ItemRenderer data to column将 Flex Spark DataGrid ItemRenderer 数据限制为列
【发布时间】:2012-03-16 19:21:48
【问题描述】:

我的移动应用程序中有一个 DataGrid(我知道,我知道,但目前没有其他解决方案),即数值。根据单元格的值,文本会被着色。我的大问题是,这对于超过 5 行的数据不起作用。我认为问题在于设置文本功能(我在其中设置颜色格式)无法跟上单元格更改的数量,并根据行的最后更新单元格设置文本格式。 我考虑了一个列项渲染器,以便渲染器只获取该列的值,而不是该行的整个数据。

这样的事情可能吗?

仅供参考,这是我当前的项目渲染器(再次,这适用于几行,对于 5+ 快速变化的数据,这不再适用,即使它们的数据没有改变,单元格也会被格式化)。

public class ColorGridItemRenderer extends DefaultGridItemRenderer 
{
    public function ColorGridItemRenderer() {
        super();
    }           

    override public function set text(value:String):void {
        if (!value)
            value = "";

        if(Number(value) > Number(text) && text!="")
                setStyle("color", 0x40c040);
            else if(Number(value) < Number(text) && text!="")
                setStyle("color", 0xf05050);
            else 
                setStyle("color", 0xc1c1c1);
        }

        super.text = value;
    }
}

编辑: 我只是仔细检查了一下,不得不恢复我之前的陈述。单行工作正常,但第二行已经弄乱了颜色格式。似乎数据网格以某种方式将这些值组合在一起。 用set data方法做颜色格式化,效果一模一样;

override public function set data(value:Object):void {

        if(value && data) {

            label = value[column.dataField];

            if(value[column.dataField] > _oldVal && _oldVal != 0)
                setStyle("color", 0x40c040);
            else if(value[column.dataField] < _oldVal)
                setStyle("color", 0xf05050);
            else 
                setStyle("color", 0xc0c0c0);

            _oldVal = value[column.dataField];  
        }
        super.data = value;

    }

编辑2: 我关于网格弄乱 ItemRenderer 数据的假设似乎是正确的。 设置数据方法中的一个简单跟踪 (trace("old: " + _oldVal + "new : " + value[column.dataField]);) 显示,不知何故,下一个网格行的值(如果有 2 个)得到used 以及 _oldVal 获取下一行的旧值。

【问题讨论】:

  • 天哪,我很愚蠢。不调用 super 可能实际上是个好主意... ;) 问题解决了。

标签: actionscript-3 mobile datagrid flex4 itemrenderer


【解决方案1】:

仅供参考: 在被覆盖的函数上调用 super 会将值设置为超类,从而混合行的值。将其从函数中删除即可解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-02
    • 2012-02-11
    • 2013-03-01
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多