ExtJs - 通过渲染器渲染的文本字段没有获得点击焦点?

时间:2014-06-26 06:03:34

标签: extjs extjs4.2

我使用propertyGrid来构建表格。当我使用renderer返回文本字段时,我无法点击并输入该文本字段。它没有得到任何关注。有什么办法解决吗?另外,有没有办法从渲染器渲染ExtJs元素而不是原始HTML元素?

1 个答案:

答案 0 :(得分:2)

在网格中,列呈现器仅返回HTML文本,因此无法直接返回组件。唯一的事情是为单元格分配一个唯一的id并推迟实际的组件创建。

  {
            header: 'Row7',
            align: 'center',
            renderer: renderCmp,
            dataIndex: 'cmpname',
            width: 100
        }


// Renderer function
    function renderCmp(value, id, r)
    {

            var id = Ext.id();
            if (r.data.cmpname )
            {
                createGridButton.defer(10, this, ['One', id, r]);
                return('<div id="' + id + '"></div>');
            }else
            {
                createGridButton.defer(10, this, ['Two', id, r]);
                return('<div id="' + id + '"></div>');
            }

    }
    function createGridButton(value, id, record) {
        new Ext.Button({
            text: value,
            iconCls: 'my-icon',
            handler : function(btn, e) {
                alert('Componet in Row');
            }
        }).render(document.body, id);
    }

希望它可以帮助你..