0

我尝试将字段值设置为数组类型的值,但网格无法显示该行。我的测试代码如下所示:

Ext.onReady(function()
{
    new Ext.grid.property.Grid(
    {
        customRenderers:{Test:function(v)
        {
            return Ext.Array.sum(v);
        }},
        source:{Test:[1,2,3]},
        renderTo:Ext.getBody()
    });
});

但如果字段值是其他类型,则显示该行。

Ext.onReady(function()
{
    new Ext.grid.property.Grid(
    {
        customRenderers:{Test:function(v)
        {
            return Ext.Array.sum(v);
        }},
        source:{Test:6},
        renderTo:Ext.getBody()
    });
});

属性网格可以自定义呈现数组值吗?

感谢您提前提供任何帮助!

4

1 回答 1

0

您可以提前在函数中执行此操作:

Ext.onReady(function()
{
    new Ext.grid.property.Grid(
        {
            customRenderers:{Test:function(v)
            {
                return Ext.Array.sum(v);
            }},
            source: sumArraysInObject({Test:[1,2,3]}),
            renderTo:Ext.getBody()
        });
});

function sumArraysInObject(obj) {
    for (var key in obj) {
        if (obj.hasOwnProperty(key) && Object.prototype.toString.call(obj[key]) === "[object Array]") {
            var sum = 0;
            for (var i = 0, l = obj[key].length; i < l; i++) {
                sum = sum + obj[key][i];
            }
            obj[key] = sum;
        }
    }
    return obj;
}
于 2012-10-24T14:21:24.413 回答