我使用propertyGrid
来构建表格。当我使用renderer
返回文本字段时,我无法点击并输入该文本字段。它没有得到任何关注。有什么办法解决吗?另外,有没有办法从渲染器渲染ExtJs元素而不是原始HTML元素?
答案 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);
}
希望它可以帮助你..