In an ExtJS网格我有一列,其中当单元格的内容为某个值时,button应该显示。
我定义了将包含这样的按钮的列,该按钮调用渲染函数:
{
header: 'Payment Type',
width: 120,
sortable: true,
renderer: renderPaymentType,
dataIndex: 'paymentType'
}]
在渲染函数中,我返回文本或button itself:
function renderPaymentType(val) {
if(val!='creditInform') {
return val;
} else {
return new Ext.Button({
text: val,
width: 50,
handler: function() {
alert('pressed');
}
});
}
}
这基本上是有效的,除了按钮显示为文本[对象对象]:
我必须做什么才能使按钮显示为按钮而不是文本?
Addendum
adding .getEl()
:
function renderPaymentType(val) {
if(val!='creditInform') {
return val;
} else {
return new Ext.Button({
text: val,
width: 50,
handler: function() {
alert('pressed');
}
}).getEl();
}
}
产生一个blank:
adding .getEl().parentNode.innerHTML
:
function renderPaymentType(val) {
if(val!='creditInform') {
return val;
} else {
return new Ext.Button({
text: val,
width: 50,
handler: function() {
alert('pressed');
}
}).getEl().parentNode.innerHTML;
}
}
导致其余代码出现某种渲染问题,尽管在 Firebug 中我奇怪地没有收到任何错误: