【问题标题】:extJs:Can prroperty grid custom render an array value?extJs:属性网格可以自定义渲染数组值吗?
【发布时间】:2012-10-14 07:25:43
【问题描述】:

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

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()
    });
});

属性网格可以自定义渲染数组值吗?

提前感谢您的帮助!

【问题讨论】:

    标签: arrays extjs propertygrid renderer


    【解决方案1】:

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

    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;
    }
    

    【讨论】:

    • 确实,我想通过“Ext.form.field.Trigger”显示值并通过单击“触发器”来编辑值。因此,如果源是通过函数获取的,则该值将无法编辑。
    猜你喜欢
    • 2015-09-16
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 2011-11-17
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    相关资源
    最近更新 更多