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 に答える